2013-06-06 4 views
0

У меня есть datatable с 6 столбцами, и я должен найти минимальное значение для каждой строки. Как это может быть сделано?C# min from datatable row

Col1 Col2 Col3 Col4 Col5 Col6 Min 
45 41 24 25 74 145 24 
27 28 398 82 2 54 2 
5 563 7 20 43 254 5 
+0

-1. Не показывать никаких усилий вообще. –

ответ

2

попробовать это,

List<int> result = new List<int>(); 
foreach (DataRow row in table.Rows) 
{ 
    result.Add(row.ItemArray.Cast<int>().Min()); 
} 
0
dataTable.Select(row => Math.Min(Math.Min(Math.Min(Math.Min(Math.Min(row.Col1, row.Col2), row.Col3), row.Col4), row.Col5), row.Col6)); 

или

dataTable.Select(row => new int[] { row.Col1, row.Col2, row.Col3, row.Col4, row.Col5, row.Col6 }).Select(intArray => intArray.Min()); 

или shortend:

dataTable.Select(row => (new int[] { row.Col1, row.Col2, row.Col3, row.Col4, row.Col5, row.Col6 }).Min())); 

или

dataTable.Select(row => row.ItemArray.Cast<int>().Min()); 

или если ваш DataTable содержит другие столбцы, которые не Интс:

dataTable.Select(row => row.ItemArray.OfType<int>().Min()); 
3
var result = dt.AsEnumerable() 
       .Select(row => row.ItemArray.Cast<int>().Min());