0

文字列を含む基本的なコレクションがあり、データベースから返された int に基づいて (同じ linq ステートメントで) LINQ を使用してこのコレクションに結合したいと考えていますが、コレクションには「インデックス」自体がないため、コレクションのインデックスを簡単に参照できることを願っています。コレクション内でアイテムが配置されている場所。

簡単に言うと、linq 以外で行うこと

string MyString = MyCollection[MyIndex];

ただし、これは LINQ 内ではサポートされていません。

どんな助けでも大歓迎です。

4

2 に答える 2

2

LINQ クエリでインデックスを参照するには、次のオーバーロードSelect()またはWhere()

collection.Select((item, index) => new { item, index })
          .Select(p => /* now you can refer to p.item and p.index */);

collection.Where((item, index) => index == indexFromDb);

また、LINQ はElementAt() / ElementAtOrDefault()メソッドを提供し、インデックスによって単一のアイテムにアクセスできるようにします

于 2013-03-07T11:23:33.337 に答える
0

Linqコレクションにインデックスを付けることができない(のようなインデックスでアクセスできる)場合は、結果のコレクションを取得して、またはそれMyCollection[0]を呼び出すことができます。結果のリスト(または配列)にはインデクサーがあります。ToList()ToArray()

于 2013-03-07T11:28:34.013 に答える