The maximum string length for the whole table (assuming at least one non-null value there, otherwise, Max
will throw an exception):
int maxStringLength = dataTable.AsEnumerable()
.SelectMany(row => row.ItemArray.OfType<string>())
.Max(str => str.Length);
If you want maximum string length for each column, you could do (assuming at least one non-null value in each column, otherwise, Max
will throw an exception):
List<int> maximumLengthForColumns =
Enumerable.Range(0, dataTable.Columns.Count)
.Select(col => dataTable.AsEnumerable()
.Select(row => row[col]).OfType<string>()
.Max(val => val.Length)).ToList();
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…