有很多方法可以做到这一点,但我觉得我错过了一个功能或其他东西.
显然List == List
会使用Object.Equals()
并返回false
.
如果列表中的每个元素都相等并且出现在相反列表中的相同位置,那么我认为它们是相等的.我正在使用值类型,但正确实现的Data对象应该以相同的方式工作(即我不是在寻找浅复制列表,只是内部每个对象的值相同).
我尝试过搜索,也有类似的问题,但我的问题是每个元素的确切顺序.
是否可以使用集合属性在LINQ中进行GroupBy?
例如
void Main()
{
var t1 = new Test() { Children = new List<string>() { "one", "two" } };
var t2 = new Test() { Children = new List<string>() { "one", "two" } };
var t3 = new Test() { Children = new List<string>() { "one", "three" } };
var tests = new List<Test>() { t1, t2, t3 };
var anon = from t in tests
select new
{
Children = t.Children
};
anon.GroupBy(t => t.Children).Dump();
}
public class …
Run Code Online (Sandbox Code Playgroud) 可能重复:
比较两个List <string>是否相等
如何判断两个字符串数组是否相等?
我使用过它,但它不起作用,即使两者的内容相同.
string[] array1 = new string[]{"A" , "B"}
string[] array2 = new string[]{"A" , "B"}
if(array1 == array2) // it return false !!!!
{
//
}
Run Code Online (Sandbox Code Playgroud)