2008-08-01 19 views

Odpowiedz

29

Aby uczynić go bardziej czytelnym i łatwiejszym w obsłudze, można również podzielić go na wiele instrukcji LINQ.

  1. Najpierw należy wybrać dane do nowej listy, nazwijmy to x1, zrobić projekcję jeśli pożądany
  2. Następnie należy utworzyć odrębną listę od x1 w x2, używając cokolwiek rozróżnienia wymagają
  3. Wreszcie utworzyć listę uporządkowaną, z x2 do , sortując cokolwiek chcecie
50

Problemem jest to, żeby różne operator nie zapewnia, że ​​będzie utrzymanie oryginalnej kolejności wartości.

Więc zapytanie będzie musiał pracować jak to

var names = (from DataRow dr in dataTable.Rows 
      select (string)dr["Name"]).Distinct().OrderBy(name => name); 
1

Wypróbuj następujące

var names = (from dr in dataTable.Rows 
      select (string)dr["Name"]).Distinct().OrderBy(name => name); 

to powinno działać przez co trzeba.

7
var sortedTable = (from results in resultTable.AsEnumerable() 
select (string)results[attributeList]).Distinct().OrderBy(name => name); 
3

Wypróbuj FO llowing:

dataTable.Rows.Cast<DataRow>().select(dr => dr["Name"].ToString()).Distinct().OrderBy(name => name); 
0

Abstrakt: wszystkie odpowiedzi mają coś wspólnego.

Zamówienie musi być ostateczną operacją.