【问题标题】:List Complexity列出复杂性
【发布时间】:2015-03-04 15:12:23
【问题描述】:

我已经完全理解了这些列表,但我还有一件事我需要知道,然后才知道它
我已经创建了列出一个字符串和一个 int

第一个字符串名称是jack,它的值是2 第二个字符串 名字是 john,它的值是 5 但结果我正在服用 约翰的价值 2 约翰的价值 5
杰克的价值 2 杰克的价值 5

如何使第一个字符串只有一个值,而第二个字符串有自己的值

List<string> NameList = new List<string>();
        Console.WriteLine("Please insert a name ");
        string name = Console.ReadLine();
        NameList.Add(name);

        List<int> answerList = new List<int>();
        Console.WriteLine("Please insert a value");
        int x = int.Parse(Console.ReadLine());
        answerList.Add(x);

        Console.WriteLine("Do you want to calculate more ? (yes/no)");
        string answer = Console.ReadLine();
        answer.Trim();

        bool isYes = true;
        while (isYes)
        {

            if (answer == "yes")
            {
                Console.WriteLine("Please insert another name/value");
                name = Console.ReadLine();
                x = int.Parse(Console.ReadLine());
                NameList.Add(name);
                answerList.Add(x);
                Console.WriteLine("Do you want to calculate more ? (yes/no)");
                answer = Console.ReadLine();
                answer.Trim();
            }
            else if (answer == "no")
            { break; }
        } string are = " are ";
        foreach (var NAME in NameList)
        foreach (var item in answerList)

            Console.WriteLine("The values of " + NAME + are +item);

【问题讨论】:

    标签: c# visual-studio list declare


    【解决方案1】:

    问题出在这里:

    foreach (var NAME in NameList)
    foreach (var item in answerList)
    

    您正在进行交叉连接,将NameList 中的每个名称与answerList 中的每个值匹配。您有几个选择:

    • 创建一个具有NameValue 属性的类,并将该类的实例存储在一个列表中
    • 使用Zip Linq 函数逐个元素排列列表并在foreach 中迭代结果

    现在要养成的其他习惯:

    • 使用一致的标准大小写。变量使用驼峰命名法(例如nameListanswerList),属性使用PascalCase(NameAnswer)。 常量值使用全部大写

    • 记住Trim 返回修剪后的字符串,所以answer.Trim()什么都不做(它丢弃了Trim的输出)。请改用answer = answer.Trim()

    【讨论】:

    • Zip功能貌似比较简单,但是如何应用
    • MSDN 上有大量文档,这里有很多问题需要研究。不过,老实说,使用类会是更好的方法。只有当您要加入来自不同来源且无法合并的列表时,使用 .Zip 才是更好的方法。
    • 谢谢你所做的一切,但还有一件事告诉我在谷歌上上课是正确的,因为我已经看到了更多关于它们的信息,并试图与它们混淆,但我几乎不使用它们
    • 我会搜索C# class
    • 我真的不能这样做,我创建了一个类,但结果我的第二个名字覆盖了第一个我真的没有 foreach 就卡住了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多