簡體   English   中英

VB.net LINQ select 數據表中的特定行

[英]VB.net LINQ select specific rows from datatable

我有一種情況,我將所有數據加載到 DataTable 中,但在我的情況下,我只需要使用不以前綴(“#”)開頭的列。 我可以通過數據構建一個 function 到 go,但我想使用 LINQ,因為我正在學習它。

到目前為止我所擁有的:

Dim l = (From r In (dt.AsEnumerable())
                     From c As DataColumn
                             In r.Table.Columns
                     Where Not c.ColumnName.Contains("#")).ToList()

但結果不是我需要的。 我意識到 function 出了什么問題,但我就是不知道怎么寫

為了更清楚:

DataTable:
      [Column1][Column2][Column3]
[Row1]    123      abv   12/10/21
[Row2]    555     sfsf   12/12/21

我不需要 [Column3],並且由於我正在嘗試做的具體操作,我需要使用完整的 DataTable。 因此,結果將是:

DataTable, or List(of) or IEnumerable..:
      [Column1][Column2]
[Row1]    123      abv   
[Row2]    555     sfsf   

我希望使用 LINQ,但如果它太復雜或不可能,我將使用普通的 vb 方式。 我將構建一個只有所需列的新數據表...

不是 100% 確定你想要達到的目標,但我認為你想做這樣的事情:

Dim result = (From c In datatable.Columns Where Not c.ToString.StartsWith("#"c)).ToList

這就是我最終的結果。 我只是從集合中刪除我不需要的列。

dt.Columns.Remove((From c As DataColumn In dt.Columns Where c.ColumnName.StartsWith("#")).First)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM