【问题标题】:Array of List, get the same character of each list, how?List的数组,获取每个列表的相同字符,如何?
【发布时间】:2018-10-10 13:46:07
【问题描述】:

我是 C Sharp 的新手。我有以下代码

List<string>[] a = new List<string>[3];

for(int i = 0; i < a.Length; i++)
{
    a[i] = new List<string>();
}

a[0].Add("a");
a[0].Add("c");

a[1].Add("a");
a[1].Add("d");

a[2].Add("a");
a[2].Add("f");

我想输出 List[] a 的数组的所有 a。如何从不同的列表中获取所有 a?

【问题讨论】:

  • 为了找到所有嵌套的a,您做了什么尝试?关于 除此之外 - 每个 SO 问题应该只有一个问题,因此当人们寻找答案的解决方案时,很清楚问题是关于什么的
  • 除了您的初始代码无法编译之外 - 缺少一些位,就像您尝试通过 for 循环执行操作以将内容放入列表中一样,您可以使用 for(或 foreach)循环把它们弄出来——你走了多远?
  • 您知道如何使用 for 循环遍历数组。进行两次相同的迭代 - 遍历数组,然后在内部遍历列表项。如果列表项满足条件(等于“a”),则将其输出到控制台。
  • 这个a.SelectMany(x =&gt; x).Where(x =&gt; x == "a")会给你一个IEnumerable,它会在3个a中返回?
  • 好吧,我希望在我因回答一个消失的问题而受到批评之前,您已经收到了我对您现在已编辑掉的问题第二部分的回答。答案看起来像:List&lt;string&gt;[] _myArray = { new List&lt;string&gt;{"a", "c" }, new List&lt;string&gt;{"a", "d" }, new List&lt;string&gt;{"a", "f" }, };

标签: c# arrays list items


【解决方案1】:

您可以使用以下内容过滤“a”:

var b = a.SelectMany(x => x.Where(y => y == "a"));

测试:https://dotnetfiddle.net/TH4Vuz

例如,如果您需要获取索引,您可以将其作为说明点

【讨论】:

    【解决方案2】:

    如果你是新手,还不知道 LINQ,试试这个

    foreach(a 中的 var 集合) { foreach(集合中的 var 字母) { 如果(字母 == “a”) { Console.WriteLine(字母); } } }

    【讨论】:

      猜你喜欢
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 2019-11-02
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 2020-03-28
      • 1970-01-01
      相关资源
      最近更新 更多