相关疑难解决方法(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万
查看次数

如何在没有循环的情况下组合两个词典?

<string,object>在C#中有两个类型的字典.如何在不应用循环的情况下将一个Dictionary对象的所有内容复制到另一个;

c# collections dictionary

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

使用linq合并具有重复键的2个词典

如何合并2个字典,IDictionary<Guid, MyObject>哪个MyObject是类实例?

IDictionary<Guid, MyObject> d1 = new Dictionary<Guid, MyObject>();
d1.Add(guid1, m1);
d1.Add(guid2, m2);
d1.Add(guid3, m3);
IDictionary<Guid, MyObject> d2 = new Dictionary<Guid, MyObject>();
d2.Add(guid2, m2);
d2.Add(guid3, m3);
d2.Add(guid4, m4);
IDictionary<Guid, MyObject> d3 = d1.Union(d2) ???
Run Code Online (Sandbox Code Playgroud)

d3有如下条目:

guid1,m1
guid2,m2
guid3,m3
guid4,m4
Run Code Online (Sandbox Code Playgroud)

c# linq merge dictionary

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

C#Linq合并了两个词典

如何使以下方法更具功能性 - linq-style?

    public static Dictionary<T, T> MergeDict<T, T>(Dictionary<T, T> a, Dictionary<T, T> b)
    {
        var e = new Dictionary<T, T>();

        a.Concat(b).ToList().ForEach(pair =>
        {
            e[pair.Key] = pair.Value;
        });

        return e;
    }
Run Code Online (Sandbox Code Playgroud)

c# linq merge functional-programming

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