我想知道下面我比较一个字符串数组(或任何简单类型)的方法是否会产生任何性能影响.
bool AreValuesEqual(List<string> oldFieldValue, List<string> newFieldValue)
{
if (oldFieldValue.Count != newFieldValue.Count)
return false;
var list1 = oldFieldValue;
list1.AddRange(newFieldValue);
var list2 = list1.Distinct();
return list2.Count() == newFieldIds.Count;
}
Run Code Online (Sandbox Code Playgroud)
我不知道Distinct()对此有多强烈,但我认为与其他循环相比它不应该太多.
编辑 - 抱歉,应该提供更多背景信息.情侣:
- 参数数组中没有重复项.
- 我真的不关心顺序,我只是想知道一个数组中的值是否与另一个数组相同.如果另一个数组具有不同的值,则返回false.
我不认为您的代码存在严重的性能问题.然而,令我困扰的是你将list1修改为进行比较的副作用.
以下工作会更好吗?
if(list1.Count == list2.Count)
{
var list3 = list1.Intersect(list2);
return list3.Count == list1.Count();
}
Run Code Online (Sandbox Code Playgroud)
类似的问题发布在比较两个列表中的差异.