我有一个已知的字符串列表,如下所示:
List<string> groupNames = new List<string>(){"Group1","Group2","Group3"};
Run Code Online (Sandbox Code Playgroud)
我还有一个事先未知的字符串列表,如下所示:
List<string> dataList = new List<string>()
{
"Group1.SomeOtherText",
"Group1.SomeOtherText2",
"Group3.MoreText",
"Group2.EvenMoreText"
};
Run Code Online (Sandbox Code Playgroud)
我想做一个 LINQ 语句,它将获取 dataList 并将其转换为匿名对象或字典,该对象具有组名称的键和包含该组中字符串列表的值。目的是循环组和内部循环组列表,并根据字符串所在的组对字符串执行不同的操作。
我想要一个看起来像这样的数据结构:
var grouped = new
{
new
{
Key="Group1",
DataList=new List<string>()
{
"Group1.SomeOtherText",
"Group1.SomeOtherText2"
}
},
new
{
Key="Group2",
DataList=new List<string>()
{
"Group2.EvenMoreText"
}
}
...
};
Run Code Online (Sandbox Code Playgroud)
我知道我可以循环遍历 dataList,然后检查每个字符串是否包含组名称,然后将它们添加到单独的列表中,但我正在尝试学习执行此类任务的 LINQ 方式。
提前致谢。
编辑:
只是有另一个想法...如果我的组名在枚举中怎么办?
public enum Groups
{
Group1,
Group2,
Group3
}
Run Code Online (Sandbox Code Playgroud)
我如何将其放入字典>?
这就是我正在尝试的,但我不确定如何形成 ToDictionary 部分
Dictionary<Groups,List<string>> groupedDictionary = (from groupName in Enum.GetNames(typeof(Groups))
from data in dataList …Run Code Online (Sandbox Code Playgroud)