相关疑难解决方法(0)

如何通过Lambda或LINQ从列表中获取不同的实例

我有一个这样的课:

class MyClass<T> {
    public string value1 { get; set; }
    public T objT { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

以及这个班级的清单.我想使用.net 3.5 lambda或linq来获取不同value1的MyClass列表.我想这可能比在.net 2.0中缓存这样的列表的方式简单得多:

List<MyClass<T>> list; 
...
List<MyClass<T>> listDistinct = new List<MyClass<T>>();
foreach (MyClass<T> instance in list)
{
    // some code to check if listDistinct does contain obj with intance.Value1
    // then listDistinct.Add(instance);
}
Run Code Online (Sandbox Code Playgroud)

lambda或LINQ的做法是什么?

c# linq lambda .net-3.5

28
推荐指数
2
解决办法
6万
查看次数

如何在Distinct中使用lambda表达式

可能重复:
Linq Distinct()使用委托进行相等比较

我需要通过ID获得唯一的PostViewModel.这与lambda表达有什么关系?

public IEnumerable<PostViewModel> DistinctPosts
{
  get 
  { 
    return Employees
             .SelectMany(e => e.PostList.Posts)
             .Distinct(new PostViewModelComparer())
             .ToList(); 
  }
}
Run Code Online (Sandbox Code Playgroud)

比较器:

class PostViewModelComparer : IEqualityComparer<PostViewModel>
{
  #region IEqualityComparer<Contact> Members

  public bool Equals(PostViewModel x, PostViewModel y)
  {
    return x.ID.Equals(y.ID);
  }

  public int GetHashCode(PostViewModel obj)
  {
    return obj.ID.GetHashCode();
  }

  #endregion
}
Run Code Online (Sandbox Code Playgroud)

抱歉,对于LINQ的Distinct()使用委托进行相等比较,这是一个很好的例子.

c# linq lambda distinct

6
推荐指数
1
解决办法
8576
查看次数

合并2个列表并删除重复项.在第三个列表中输出.我的尝试不起作用

当我需要比较2个列表并生成包含所有唯一项目的第3个列表时,我似乎总是遇到问题.我需要经常执行此操作.

尝试用一个简单的例子重现这个问题.

我错过了什么吗?谢谢你的任何建议

想要的结果

   Name= Jo1 Surname= Bloggs1 Category= Account
   Name= Jo2 Surname= Bloggs2 Category= Sales
   Name= Jo5 Surname= Bloggs5 Category= Development
   Name= Jo6 Surname= Bloggs6 Category= Management
   Name= Jo8 Surname= Bloggs8 Category= HR
   Name= Jo7 Surname= Bloggs7 Category= Cleaning

class Program
{
    static void Main(string[] args)
    {
          List<Customer> listOne = new List<Customer>();
        List<Customer> listTwo = new List<Customer>();

        listOne.Add(new Customer { Category = "Account", Name = "Jo1", Surname = "Bloggs1" });
        listOne.Add(new Customer { Category = "Sales", Name = "Jo2", …
Run Code Online (Sandbox Code Playgroud)

linq

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

linq ×3

c# ×2

lambda ×2

.net-3.5 ×1

distinct ×1