2017-04-07 16 views
0
IQueryable<string> ScannedBarcodes = XYZDb.tblScannedBarcodes 
              .Where(i => i.PullNo == lblPullNo.Text) 
              .Select(i => i.Barcode); 

をリストに追加する結果ビューがはのIQueryableからカンマ区切りの値を取得し、

"678765,090909,243454,675434" 

のようなものを示している今、私は、リストにすべてのカンマ区切りの値を追加します。

私のコードの残りの部分は以下の通りです:

foreach (var item in ScannedBarcodes) 
{ 
    List<string> _barcodes = new List<string>(); 
    _barcodes.Add(item); 
} 

それを分割する方法は?事前に

おかげで

+0

単純な '.ToList()'はどうですか? – ChriPf

答えて

1

使用

_barcodes.AddRange(item.Split(',')); 
2

分割は次のようにLINQを使用して行うことができます。

var _barcodes = 
    ScannedBarcodes.SelectMany(iString => iString.Split(new char[]{ ','})) 
        .ToList(); 
+0

Barcodeはプロパティタイプの文字列を持っているとは言えませんが、そうであってもString.Splitには文字列が必要で、String.SplitはIQueryableで動作しないので、まずAsEnumerable()を実行してください –

+0

barcode is文字列型のプロパティ – Arka

0

カンマで単一の文字列一切ありません - ちょうどデバッガ表示です。ちょうどあなたのList<string>を作成して.AddRange()に単一の呼び出しでそれに全体IQueryableコレクションを追加 - IQueryable

IQueryable<string> ScannedBarcodes = XYZDb.tblScannedBarcodes 
              .Where(i => i.PullNo == lblPullNo.Text) 
              .Select(i => i.Barcode); 

List<string> _barcodes = new List<string>(); 
_barcodes.AddRange(ScannedBarcodes); 

は、それらの値をループする必要は本当にありません.....すでに値の列挙リストです...

+0

データベースは** "678765,090909,243454,675434"のような値を持っています** – Arka

+0

そして私はsepapartelyを表示する必要があります – Arka

関連する問題