-2

可能重复:
优化双 foreach 循环

我正在尝试将双 foreach 循环变成单个 foreach 循环

foreach (KeyValuePair<Int64, MyObject> kvp in originCounts)
{
    foreach (KeyValuePair<Int64, MyObject> testkvp in originCounts)
    {
    //Run Comparison on testkvp ad kvp to see if all elements of object are the same
    }
}

MyObject 是这样定义的

public class MyObject 
{
    public string FirstName{ get; set; }
    public string LastName{ get; set; }
    public int UserID { get; set; }
    public string Address { get; set; }
}

反正有没有使用一个循环来做到这一点?当它们都相同时,我将它们添加到 Int64 列表中。是同一个字典。

4

1 回答 1

1

如果你有一个IEnumberableof KeyValuePairs 那么你可以做这样的事情:

public bool AreAllSame(IEnumberable<KeyValuePair<Int64, MyObject>> list)
{
  return list.Select(kv => kv.Value).Distinct().Count == 1;
}

不确定它是否真的经过优化,但它更短!:-]

当然,无论您要比较什么,都需要具有可比性。

于 2012-11-15T15:24:51.820 回答