我想知道是否可以创建一个“单行”Linq 来检索特定数据表列的最长字符串值,这意味着所有列数据(数字、日期、字符串...)都应转换为字符串,然后返回最长的字符串。
我发现的只是如何从列表中获取最长的字符串或最大长度值。
这是我到目前为止所尝试的(长度错误):
string maxString = dt
.AsEnumerable()
.Select(row => row[mycolumn].ToString())
.Where(s => s.OrderByDescending(st => st.Length).First());
您正在寻找ArgMax
- a value使其具有某种财产的最大值。标准 Linq 不提供ArgMax
但你可以通过实现它Aggregate
(即从序列中获取单个值):
string maxString = dt
.AsEnumerable()
.Select(row => row[mycolumn].ToString())
.Aggregate((s, a) => a.Length > s.Length ? a : s);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)