相关疑难解决方法(0)

我可以指定内联显式类型比较器吗?

因此,.NET 3.0/3.5为我们提供了许多查询,排序和操作数据的新方法,这要归功于LINQ提供的所有简洁功能.有时,我需要比较没有内置比较运算符的用户定义类型.在许多情况下,比较非常简单 - 比如foo1.key?= foo2.key.我可以使用匿名委托/ lambda函数简单地指定内联比较,而不是为该类型创建新的IEqualityComparer吗?就像是:

var f1 = ...,
    f2 = ...;
var f3 = f1.Except(
           f2, new IEqualityComparer(
             (Foo a, Foo b) => a.key.CompareTo(b.key)
           ) );
Run Code Online (Sandbox Code Playgroud)

我很确定上面的内容实际上并不奏效.我只是不想让整个班级做一些"沉重"的事情只是为了告诉程序如何比较苹果和苹果.

.net c# linq lambda

57
推荐指数
6
解决办法
4万
查看次数

GroupBy on complex object(例如List <T>)

使用GroupBy()Count() > 1我试图在列表中查找我的类的重复实例.

这个类看起来像这样:

public class SampleObject
{
    public string Id;
    public IEnumerable<string> Events;
}
Run Code Online (Sandbox Code Playgroud)

这就是我实例化和分组列表的方式:

public class Program
{
    private static void Main(string[] args)
    {
        var items = new List<SampleObject>()
        {
            new SampleObject() { Id = "Id", Events = new List<string>() { "ExampleEvent" } },
            new SampleObject() { Id = "Id", Events = new List<string>() { "ExampleEvent" } }
        };

        var duplicates = items.GroupBy(x => new { Token = x.Id, x.Events })
                         .Where(g => g.Count() …
Run Code Online (Sandbox Code Playgroud)

c# linq comparison grouping

13
推荐指数
1
解决办法
6298
查看次数

标签 统计

c# ×2

linq ×2

.net ×1

comparison ×1

grouping ×1

lambda ×1