【问题标题】:comapring array if the user type in then adding in list如果用户输入,则比较数组,然后添加列表
【发布时间】:2017-10-29 10:20:45
【问题描述】:

我正在尝试制作一个程序,其中用户提供 10 个名称,我该程序必须检查用户是否提供了相同的名称,然后程序将其添加到列表中并显示它们。我的问题是我不明白如何检查相同的名称。

string[] namen = new string[10];
string[] names = new string[10];
List<string> result = new List<string>();

string naam;

for(int i = 0;i<10;i++)
{
    Console.WriteLine("Geef {0} naam in: ", i+1);
    naam = Console.ReadLine();
            namen[i] = naam;
}

for(int i= 0;i<10;i++)
{
     namen[i] = names[i];
}
Array.Sort(names);
for (int i = 0; i < 10;i++ )
{
    if (namen[i]==namen[i])
    {
        result.Add(names[i]);
    }
}
foreach(string show in result)
{
    Console.WriteLine(show);
}
Console.ReadLine();

【问题讨论】:

标签: c#


【解决方案1】:

您可以使用 List&lt;string&gt; 并检查名称是否已包含在内:

    List<string> names = new List<string>();
    List<string> allreadyEntered = new List<string>();

    string naam;

    for(int i = 0;i<10;i++)
    {
        Console.WriteLine("Geef {0} naam in: ", i+1);
        naam = Console.ReadLine();

        if(names.Contains(naam) && !allreadyEntered.Contains(naam))
        {
             allreadyEntered.Add(naam);
        }

        names.Add(naam);
    }

    foreach(string naam in allreadyEntered)
    {
        Console.WriteLine(naam);
    }
    Console.ReadLine();

【讨论】:

  • 我已经编辑了我的答案以消除这个问题
【解决方案2】:

您也可以使用System.Linq 进行操作

string[] names = namen.GroupBy(n => n).Where(g => g.Count() > 1).Select(g => g.Key).ToArray();

GroupBy(n =&gt; n) 根据值对字符串数组进行分组。

Where(g =&gt; g.Count() &gt; 1) 消除具有单个实例的组。

Select(g =&gt; g.Key)选择每个组的字符串值。

ToArray() 以数组形式给出结果

【讨论】:

    【解决方案3】:

    我认为你可以这样做:

    string[] namen = new string[10];
    
        for(int i = 0;i<10;i++)
        {
            Console.WriteLine("Geef {0} naam in: ", i+1);
            namen[i] = Console.ReadLine();;
        }
        namen
           .GroupBy (n =>n)
           .Where (w =>w.Count () > 1)
           .ToList()
           .ForEach(f=>Console.WriteLine(f.Key));
        Console.ReadLine();
    

    【讨论】:

      猜你喜欢
      • 2016-07-24
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 2020-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多