因此,.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)
我很确定上面的内容实际上并不奏效.我只是不想让整个班级做一些"沉重"的事情只是为了告诉程序如何比较苹果和苹果.
我<string,object>在C#中有两个类型的字典.如何在不应用循环的情况下将一个Dictionary对象的所有内容复制到另一个;
如何合并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) 如何使以下方法更具功能性 - 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)