c# - 如何在数据表的每一列中获取最大字符串长度

标签 c# .net linq datatable max

我有一个 DataTable 对象。每列都是字符串类型。

如何使用 LINQ 获取每列的最大字符串长度?

最佳答案

整个表的最大字符串长度:

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# - 如何在数据表的每一列中获取最大字符串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1053560/

上一篇:C# AES-256 加密

下一篇:c# - WMIEvent 类列表

相关文章:

c# - Visual Studio 设计器中窗体的大小是否受限于屏幕分辨率?

c# - Outlook 2007 加载项 : How to add an icon to an msoControlButton

c# - 为什么c#中没有Number的基类型?

.net - TextRenderer.MeasureText 返回字符 "&"的 Width=0

c# - 无法让外部连接在 EF 中工作

c# - 我应该如何从 P&P 为 EventAggregator 创建事件,以便 UI 线程上的订阅者可以收听它们?

c# - 为什么枚举空数组不在堆上分配?

c# - 使用 Reactive 并行运行方法

c# - Directory.GetFiles() 但仅包含具有特定内容的文件(例如 "my file contents")使用 C#

c# - LINQ - 拆分具有最大长度的字符串,但不将单词分开