2012-01-31 1 views
3

私はちょうどSortableBindingListをダウンロードして、私は(代わりにVARの)このLINQクエリに割り当てしようとしている:LINQクエリにSortableBindingListを割り当てる方法

var q = from r in document.Descendants("release") 
         select new 
         { 
          Release = r.Attribute("id").Value, 
          Artist = String.Join(";", r.Element("artists").Descendants("artist").Select(x => x.Element("name").Value).ToArray()), 
          Album = r.Element("title").Value 
         }; 

はそれは難しいことはおそらくありませんが、私はよこれを行う方法についてちょうど本当に混乱... いくつかの助けに感謝します!

EDIT

静的クラス:

public static class LINQExtension 
{ 
    public static SortableBindingList<object> ToSbl(this IEnumerable<object> items) 
    { 
     return new SortableBindingList<object>(items); 
    } 
} 

割り当て:

SortableBindingList<object> sbl = LINQExtension.ToSbl(q); 
    releases_dataGridView.DataSource = sbl; 

答えて

3

あなたは匿名型を使用しているので、あなたは型推論を使用して、それを作成する必要があります。

public static SortableBindingList<T> ToSbl(this IEnumerable<T> items) { 
    return new SortableBindingList<T>(items); 
} 

var sbl = (...).ToSbl(); 
+0

お返事ありがとうございます、私はそれがあなたが意味するものであるかどうかはわかりませんが、私は仕事を分類する必要があります。私は自分の投稿を編集しましたので、あなたはそれを見ることができます。 – Daan

+0

あなたはすべての型推論を失っています。型推論が必要ない場合は、拡張機能はまったく必要ありません。 'new SortableBindingList (q)'と書くことができます。型推論が必要な場合は、 'var'を使って変数を宣言してください。 – SLaks

関連する問題