gpt4 book ai didi

c# - 使用 Linq 从平面列表创建嵌套列表

转载 作者:行者123 更新时间:2023-12-02 01:18:48 32 4
gpt4 key购买 nike

我有一个字符串列表,例如

A01,B01 ,A02, B12, C15, A12,  ... 

我想将列表展开为列表列表或列表字典,这样
所有以相同字母开头的字符串都组合在一起(使用 linq)

A -> A01 , A02 , Al2
B -> B01 , B12
C -> C15

    A -> 01 , 02 , l2
B -> 01 , 12
C -> 15

现在,我只是使用 for 循环迭代列表,并将值从字典添加到 appprop 列表中。

(可能不对!)

   Dictionary<string, List<string>> dict = new Dictionary<string, List<string>>();

foreach( string str in stringList)
{
string key = str.Substring(0,1);
if (!dict.ContainsKey(key)){
dict[key] = new List<string>();
}

dict[key].Add(str);
}

编辑:
哦抱歉我忘了添加这个,我有一个类别对象列表,这些是类别名称。
我需要检索类似 Dictionary<string, List<Category>> 的内容,接下来我想将其绑定(bind)到 nested list 。 (asp.net/mvc)

是否有更好的方法使用 Linq 执行相同的操作?

最佳答案

听起来你想要一个 Lookup ,通过ToLookup扩展方法:

var lookup = stringList.ToLookup(x => x.Substring(0, 1));

查找可以让你做几乎任何你可以用字典做的事情,但它在构造后是不可变的。哦,如果您要求缺少 key ,它会给您一个空序列而不是错误,这非常有帮助。

关于c# - 使用 Linq 从平面列表创建嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13324267/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com