簡體   English   中英

將linq查詢轉換為通用字符串數組

[英]Convert linq query to Generic string array

我知道我可以將linq查詢轉換為數組或列表,但這似乎無濟於事。

這是我的查詢:

  var bracct = from DataRow x in _checkMasterFileNew.Rows
    select new {BranchAccount = string.Format("{0}{1}", x["Branch"], x["AccountNumber"])};

當我嘗試將其轉換為列表或數組時:

  List<string> tstx = bracct.ToList();

或這個:

string[] stx = bracct.ToArray();

如果給我這個:

在此處輸入圖片說明

我假設我需要更改查詢,但是我不確定處理此問題的最佳方法。 如何獲取通用字符串集合?

這將不起作用,因為您已經創建了一個匿名類型,該匿名類型具有1個字符串屬性。 相反,如果只想將其轉換為List<string>請執行以下操作:

var bracct = (from DataRow x in _checkMasterFileNew.Rows
              select string.Format("{0}{1}", x["Branch"], x["AccountNumber"])).ToList();

如果使用c#6.0,則可以使用字符串插值:

var bracct = (from DataRow x in _checkMasterFileNew.Rows
              select $"{x["Branch"]}{x["AccountNumber"]}").ToList();

您的查詢正在創建一個具有單個成員BranchAccount的匿名類型。 如果您實際上只想要一個string ,那么只需選擇它即可:

var bracct = 
    from DataRow x in _checkMasterFileNew.Rows
    select string.Format("{0}{1}", x["Branch"], x["AccountNumber"]);

現在,您的ToList()調用將返回List<string>

List<string> tstx = bracct.ToList();

在執行ToList()之前,必須選擇要分配字符串的屬性,或者刪除匿名類型並直接select string.Format()

嘗試這個:

List<string> tstx = bracct.Select( x => x.BranchAccount ).ToList();

暫無
暫無

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

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