C#将List <T>的结果分组到具有所选字段的另一个List <T2>中

Dav*_*vid 0 c# linq wpf

我想知道是否有一种更简单的方法来使用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个不同的对象,我将不得不对所有这些对象执行此操作.当然,我想避免为每个人编写大量的功能.

所以,如果没有别的办法,至少我想知道.

谢谢

jak*_*sch 5

关于什么:

List<int> docs = objs.Select(o => o.DOC).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)