我刚刚下载了SortableBindingList,并尝试将其分配给此LINQ查询(而不是var):

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
                        };


它可能并不难,但是我对如何做到这一点感到非常困惑。
一些帮助将不胜感激!

编辑

静态类:

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;

最佳答案

因为您使用的是匿名类型,所以需要使用类型推断来创建它:

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

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

10-08 02:41