-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; }
}

1つのループを使用してこれを行う方法はありますか? それらがすべて同じ場合は、Int64 のリストに追加します。同じ辞書です。

4

1 に答える 1

1

IEnumberableofがある場合、次KeyValuePairのようなことができます。

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

本当に最適化されているかどうかはわかりませんが、短くなりました! :-]

もちろん、比較対象が何であれ、比較可能である必要があります。

于 2012-11-15T15:24:51.820 に答える