3

示されているように宣言されたオブジェクトを使用しています。

DataCollection<Entity> collection = GetDataCollection(...);

次に、以下のように 2 セットのデータを選択しています。

IEnumerable<String> 
  array_1 = collection.Select(
    element => element.Attributes["attribute_1"] as String),
  array_2 = collection.Select(
    element => element.Attributes["attribute_2"] as String);

これらの 2 つの配列が同じ順序であることが保証されているかどうか、非常に興味があります。つまり、それらの個別の順序が元の順序と同じでなければならない場合です。または、少なくとも、何らかの理由で順序が変更された場合i、最初の個別のリストの th 要素は、他のリストの th 要素に引き続き対応しiますか?

4

2 に答える 2

2

それらが同じであることは保証されていません。実際には、通常、順序が元のコレクションと一致していることに気付くでしょう。

一貫性が心配な場合は、OrderBy必要な順序を取得するための句を追加するだけです (または、結果として得られる 2 つのコレクション間で一貫性のある少なくとも 1 つの順序を取得します)。

于 2012-09-28T14:01:40.333 に答える
0

この答えを確認してください:

LINQ で順序を保持する

少なくともこの回答から、 Select 呼び出しは同じ順序であることが保証されているようです。

これに引き続き OrderBy(...) を使用します。LINQ 呼び出しでは確信が持てないように思われるため、誰かが入ってきて追加の LINQ 呼び出しを追加した場合、それらが同じ順序であると予想していたことを知らない可能性があります。

于 2012-09-28T14:04:37.157 に答える