2009-06-27 57 views

回答

11

整個表中的最大字符串長度(假定至少一個非空值存在,否則,Max會拋出異常):

int maxStringLength = dataTable.AsEnumerable() 
           .SelectMany(row => row.ItemArray.OfType<string>()) 
           .Max(str => str.Length); 

如果你想最大字符串長度爲每個列,你可以做(​​在每列假設至少一個非空值,否則,Max會拋出異常):

List<int> maximumLengthForColumns = 
    Enumerable.Range(0, dataTable.Columns.Count) 
      .Select(col => dataTable.AsEnumerable() 
            .Select(row => row[col]).OfType<string>() 
            .Max(val => val.Length)).ToList(); 
+0

獲得整個表中最長字符串的長度。 我需要每列中最長字符串的長度。 – 2009-06-27 20:56:43

0

用c#6,您可以通過添加防止異常val?.Length

var maximumLengthForColumns = 
       Enumerable.Range(0, dt.Columns.Count) 
       .Select(col => dt.AsEnumerable() 
            .Select(row => row[col]).OfType<string>() 
            .Max(val => val?.Length)).ToList(); 
相關問題