既然你提到你有一個List<int>
的ID我假設你想做一個 基於這些ID對List<Field>
的Records
Field
&的ID
屬性最終根據ID對字段進行排序。
因此,例如,如果有2個記錄
record 1 has 3 fields with IDs (1,2,3)
record 2 had 4 fields with IDs (4,3,6,2)
現在
如果List<int>
有6,2,3
所需的記錄與那些使用標識6,2,3場返回值和領域亟待解決爲每個記錄。
於是用例子情況下,你的結果會是
record 1 has 3 fields with IDs (2,3)
record 2 had 4 fields with IDS (2,3,6)
如果這是一個你那麼這裏之後是一個實際的例子
List<Field> fields1 = new List<Field>();
fields1.Add(new Field() { Id = 1, Name = "ONE", Value = "one" });
fields1.Add(new Field() { Id = 2, Name = "TWO", Value = "two" });
fields1.Add(new Field() { Id = 3, Name = "THREE", Value = "three" });
List<Field> fields2 = new List<Field>();
fields2.Add(new Field() { Id = 4, Name = "FOUR", Value = "four" });
fields2.Add(new Field() { Id = 3, Name = "THREE", Value = "three" });
fields2.Add(new Field() { Id = 6, Name = "SIX", Value = "six" });
fields2.Add(new Field() { Id = 2, Name = "TWO", Value = "two" });
records.Add(new Record() { Id = 1, Fields = fields1 });
records.Add(new Record() { Id = 2, Fields = fields2 });
//You did mention that you already have this
List<int> SortByFieldIds = new List<int>();
SortByFieldIds.AddRange(new List<int> { 6, 2, 3 });
//before foreach loop records will have 2 records (record1 with fields 1,2,3 and record2 with fields 4,3,6,2)
foreach (Record r in records)
{
r.Fields = r.Fields.Where(f => SortByFieldIds.Contains(f.Id)).OrderBy(f => f.Id).ToList();
}
//after foreach loop records will have 2 records (record1 with fields 2,3 and record2 with fields 2,3,6)
的代碼,我不需要按Field.Id排序,但首先我必須得到正確的字段(使用字段。Id),然後按此字段值(Field.Value)對記錄進行排序。 – Poniat 2012-07-06 06:03:21
@Poniat,檢查編輯後的答案 – Habib 2012-07-06 06:12:27