3

如何在 vb.net 中使用 linq 在数据表中查找列的最大长度我想要 col1 中的最大长度 5.如何使用 linq 实现这一点

    Dim DT as new datatable
    datatable.columns.add("Col1")
    datatable.rows(0).item("Col1")="123"`val inserted
    datatable.rows(1).item("Col1")="1234"`val inserted
    datatable.rows(2).item("Col1")="12345`val inserted
4

3 回答 3

1

试试这个,它是 VB.Net 之一。

Dim datatable As New DataTable()
datatable.Columns.Add("Col1")
datatable.Rows.Add("123")
datatable.Rows.Add("123456")
datatable.Rows.Add("12345")
datatable.Rows.Add("Z")
datatable.Rows.Add("ABCD")
datatable.Rows.Add("Cd")
datatable.Rows.Add("Z")
datatable.Rows.Add("Za123456Akwef")`

datatable.AsEnumerable().Select(Function(r) r.Field(Of String)("Col1").Length).Max
于 2013-09-05T10:09:08.123 回答
0

尝试这个:

Dim DT as new DataTable
DT.columns.add("Col1")
DT.rows(0).item("Col1")="123"
DT.rows(1).item("Col1")="1234"
DT.rows(2).item("Col1")="12345" 
Dim maxlength As Integer = DT.AsEnumerable.Max(Function() x("Col1").ToString.Length)
于 2014-05-12T10:50:39.540 回答
0

试试这个,它是 C# 之一。

DataTable datatable = new DataTable();
datatable.Columns.Add("Col1");
datatable.Rows.Add("123");  
datatable.Rows.Add("123456");
datatable.Rows.Add("12345");
int maxlength = 0;
datatable.Rows.OfType<DataRow>().ToList()
    .ForEach(ss => { maxlength = Convert.ToString(ss.ItemArray[0]).Length > maxlength ? 
        Convert.ToString(ss.ItemArray[0]).Length : maxlength; });

结果是 6

Vb.Net 代码片段(已翻译,不太确定语法)。

Dim datatable As New DataTable()
datatable.Columns.Add("Col1")
datatable.Rows.Add("123")
datatable.Rows.Add("123456")
datatable.Rows.Add("12345")
Dim maxlength As Integer = 0
datatable.Rows.OfType(Of DataRow)().ToList().ForEach(Function(ss) 
maxlength = If(Convert.ToString(ss.ItemArray(0)).Length > maxlength, Convert.ToString(ss.ItemArray(0)).Length, maxlength)

End Function)

希望这有帮助..

于 2012-06-05T13:39:32.113 回答