【发布时间】:2010-11-06 09:59:24
【问题描述】:
我有一个 DataTable 对象。每列都是字符串类型。
使用 LINQ,如何获得每列的最大字符串长度?
【问题讨论】:
标签: c# .net linq datatable max
我有一个 DataTable 对象。每列都是字符串类型。
使用 LINQ,如何获得每列的最大字符串长度?
【问题讨论】:
标签: c# .net linq datatable max
整个表的最大字符串长度:
int? maxStringLength = dataTable.AsEnumerable()
.SelectMany(row => row.ItemArray.OfType<string>())
.Max(str => str?.Length);
如果您想要 每个 列的最大字符串长度,您可以这样做:
List<int?> maximumLengthForColumns =
Enumerable.Range(0, dataTable.Columns.Count)
.Select(col => dataTable.AsEnumerable()
.Select(row => row[col]).OfType<string>()
.Max(val => val?.Length)
).ToList();
【讨论】:
使用 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();
【讨论】: