2011-01-04 19 views
1

これはstringsのリストを返します。LINQ:選択中にクエリ結果を変換する方法は?

var filesizes = from fd in files 
       from tag in fd.Tags 
       where tag.Id == ID.FILESIZE 
       select tag.Value; 

次は動作しませんが、そこには多分、クエリ中にstringintに変換するために類似した何かをする方法は何ですか?

var filesizes = from fd in files 
       from tag in fd.Tags 
       where tag.Id == ID.FILESIZE 
       select new { int.Parse(tag.Value) }; 

ConvertAll as suggested hereを使用するだけですか?

+1

それが働くだろうか? – Tahbaza

答えて

5

あなたが行うことができますどちらか:あなたは `{`新しいを落とした場合

var filesizes = from fd in files 
       from tag in fd.Tags 
       where tag.Id == ID.FILESIZE 
       select new { FileSize = int.Parse(tag.Value) }; 

または

var filesizes = from fd in files 
       from tag in fd.Tags 
       where tag.Id == ID.FILESIZE 
       select int.Parse(tag.Value); 
+0

複数の可能性を示すために選択しました。私は、最初のバリエーションが近日中に便利になることを確信しています! – glenneroo

1

あなただけの代わりにselect tag.Valueの終わりにselect int.Parse(tag)を置くことができます。

var filesizes = from fd in files 
       from tag in fd.Tags 
       where tag.Id == ID.FILESIZE 
       select int.Parse(tag.Value); 
0

あなたは{...}新しいと整数をラップする必要があるのはなぜ?それは簡単です:

var filesizes = from fd in files 
       from tag in fd.Tags 
       where tag.Id == ID.FILESIZE 
       select int.Parse(tag.Value); 
+0

私は(まだ)いません。試してみると、それは私には起こりませんでした。 – glenneroo

関連する問題