我有一个字符串列表
A01,B01 ,A02, B12, C15, A12, ...
Run Code Online (Sandbox Code Playgroud)
我想将列表放入列表列表或列表的列表中,以便
所有以相同字母开头的字符串组合在一起(使用linq)
A -> A01 , A02 , Al2
B -> B01 , B12
C -> C15
Run Code Online (Sandbox Code Playgroud)
要么
A -> 01 , 02 , l2
B -> 01 , 12
C -> 15
Run Code Online (Sandbox Code Playgroud)
现在我只使用for循环迭代列表并将值添加到字典中的approp列表中.
(可能不对!)
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);
}
Run Code Online (Sandbox Code Playgroud)
编辑:
哦对不起,我忘了添加这个,我有一个类别objs列表,这些是类别名称.
我需要检索类似的东西Dictionary<string, List<Category>>,我希望将它绑定到嵌套列表.(asp.net/ mvc)
使用Linq有更好的方法吗?
听起来你想要一个Lookup,通过ToLookup扩展方法:
var lookup = stringList.ToLookup(x => x.Substring(0, 1));
Run Code Online (Sandbox Code Playgroud)
查找将让您可以使用字典执行任何操作,但在构建之后它是不可变的.哦,如果你要求丢失钥匙,它会给你一个空序列而不是错误,这可能非常有用.