我想知道是否有一种更简单的方法来使用LINQ或其他方式...
我想从List中提取所有行,按特定字段对它们进行分组,并将结果存储在另一个不同的行中,例如包含搜索参数的分组但未重复的结果的List.
这是一个例子:
public class CustomObj
{
public int DOC { get; set; }
public string Desc { get; set; }
public string Name{ get; set; }
}
public class Worker()
{
public void DoWork()
{
List<CustomObj> objs = new List<CustomObj>();
objs.Add(new CustomObj(1, "Type1", "Name1"));
objs.Add(new CustomObj(1, "Type2", "Name1"));
objs.Add(new CustomObj(2, "Type2", "Name2"));
objs.Add(new CustomObj(3, "Type1", "Name1"));
objs.Add(new CustomObj(3, "Type2", "Name1"));
objs.Add(new CustomObj(3, "Type3", "Name1"));
// HERE'S WHAT I'D LIKE TO DO
// NOTE THAT THIS IS NOT A CORRECT FORMATED FUNCTION
List<int> docs = objs.GroupBy(o => o.DOC).Select(o => o.DOC).ToList<int>();
}
}
Run Code Online (Sandbox Code Playgroud)
最后,我的文档列表应该是这样的
docs[0] = 1
docs[1] = 2
docs[2] = 3
Run Code Online (Sandbox Code Playgroud)
到目前为止,在我目前的项目中,我有10个不同的对象,我将不得不对所有这些对象执行此操作.当然,我想避免为每个人编写大量的功能.
所以,如果没有别的办法,至少我想知道.
谢谢
关于什么:
List<int> docs = objs.Select(o => o.DOC).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |