Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LINQ Group by查询的一个问题_Linq_Group By_Linq Group - Fatal编程技术网

LINQ Group by查询的一个问题

LINQ Group by查询的一个问题,linq,group-by,linq-group,Linq,Group By,Linq Group,我有一个很好的问题 private ObservableCollection<Grouping<string, SEListItemTemplate>> MonkeysGrouped { get; set; } var sorted = from item in CollPublic orderby item.Title group item

我有一个很好的问题

  private ObservableCollection<Grouping<string, SEListItemTemplate>> MonkeysGrouped { get; set; }


            var sorted = from item in CollPublic
                         orderby item.Title
                         group item by item.Title into listData
                         select new Grouping<string, SEListItemTemplate>(listData.Key, listData);

            MonkeysGrouped = new ObservableCollection<Grouping<string, SEListItemTemplate>>(sorted);

            list.ItemsSource = MonkeysGrouped;
private observeCollection{get;set;}
var sorted=CollPublic中的from项
orderby item.Title
按项目分组。将标题放入listData
选择新分组(listData.Key、listData);
MonkeysGrouped=新的ObservableCollection(已排序);
list.ItemsSource=MonkeysGrouped;
如果现在我想使用自定义排序和分组功能,如下面所示,我该怎么做

var sorted = from item in CollPublic
                         orderby (OrderByFunc)
                         group item by (GroupByFunc) into listData
                         select new Grouping<string, SEListItemTemplate>(listData.Key, listData);
var sorted=来自公共目录中的项目
orderby(OrderByFunc)
将项目按(GroupByFunc)分组到listData中
选择新分组(listData.Key、listData);
如果我尝试这样做,最后一行(选择新建分组…)会抛出一个编译错误,如果我将字符串更改为对象,它会编译得很好,但在运行时会抛出一个错误,表示至少有一个对象应该实现Icomparable以进行排序&至少有一个对象应该为上述查询中的分组部分实现IGrouping。我怎样才能做到这一点

下面是自定义排序和分组函数的定义,以备不时之需

public Func<SEListItemTemplate, Object> OrderByFunc
    {
        get{return _orderByFunc; }
        set {_orderByFunc = value; }
    }

public Func<SEListItemTemplate, Object> OrderByFunc
    {
        get {return _orderByFunc; }
        set {_orderByFunc = value; }
    }
public Func OrderByFunc
{
获取{return\u orderByFunc;}
设置{u orderByFunc=value;}
}
公共函数OrderByFunc
{
获取{return\u orderByFunc;}
设置{u orderByFunc=value;}
}

感谢您的帮助。谢谢更新:下面的代码运行良好。请告诉我是否有更好的方法来编写下面的lambda函数`

 var sorted = CollPublic.OrderBy(OrderByFunc).GroupBy(GroupByFunc);

                foreach (var item in sorted)
                {
                    var t = new Grouping<object, SEListItemTemplate>(item.Key, item);
                    MonkeysGrouped.Add(t); 
                }  
list.ItemsSource = MonkeysGrouped;
var sorted=CollPublic.OrderBy(OrderByFunc).GroupBy(GroupByFunc);
foreach(已排序的变量项)
{
var t=新分组(item.Key,item);
添加(t);
}  
list.ItemsSource=MonkeysGrouped;