0

次のコードがあります。

    //Pretend there is a few static values in this list
    List<string> repeatUserIds = new List<string>();

    SomeCollection.Where(x => repeatUserIds.Contains(x.UserId)).First().MyCol = "somevalue";

    MyEntities.SaveChanges(false);
    scope.Complete();
    MyEntities.AcceptAllChanges();                            

また、おそらく 5 程度の静的な UserId のリストを含むというList<string>オブジェクトもあります。repeatUserIds私はSomeCollection.Where(x => repeatUserIds.Contains(x.UserId))ステートメントがrepeatUserIds一致するrepeatUserIds場合に最も古いユーザー ID を持つアイテムを返すようにしたいと考えています。

4

1 に答える 1

0

結合では、最初のコレクションの並べ替え順序が保持されるという事実を利用できます。したがって、「最初の」項目は次の 2 つの手順で見つけることができます。

var dbList = SomeCollection.Where(x => repeatUserIds.Contains(x.UserId))
             .ToList();

repeatUserIds.Join(dbList, s => s, x => x.UserId, (s,x) => x)
             .First().MyCol = "somevalue";

ただし、理論的には、Listオブジェクト内の要素の順序は保証されないことに注意してください。SortedListに aを使用することもできますrepeatUserIds

于 2012-10-09T12:13:07.787 に答える