相关疑难解决方法(0)

IEnumerable <T>/IQueryable <T>上的动态LINQ OrderBy

我在动态LINQ 的VS2008示例中找到了一个示例,它允许您使用类似sql的字符串(例如,OrderBy("Name, Age DESC"))用于排序.不幸的是,包含的方法仅适用于IQueryable<T>;.有没有办法获得此功能IEnumerable<T>

c# linq linq-to-objects

657
推荐指数
12
解决办法
26万
查看次数

如何使用C#中的LINQ在一个通用的IEnumerable(IEnumerable <T>)上进行排序?

在我的通用存储库中,我有以下方法:

public virtual IEnumerable<T> GetAll<T>() where T : class
{
    using (var ctx = new DataContext())
    {
        var table = ctx.GetTable<T>().ToList();
        return table;
    }
}
Run Code Online (Sandbox Code Playgroud)

T是Linq to Sql类,我希望能够在特定属性(即int SortOrder)上使用OrderBy.假如T具有属性名称"SortOrder",则在此属性上执行OrderBy.但我不确定如何实现这一目标.所以我需要一些帮助.谢谢!我觉得动态语言在做这类工作时真的很棒!

来自ScottGu的报价:

虽然编写类型安全的查询对于大多数场景来说都很好,但在某些情况下,您希望能够灵活地动态构建查询

这正是我面临的问题,我想知道这个linq动态助手是否可以制作成官方的.NET库.

c# linq generic-list sql-order-by

12
推荐指数
4
解决办法
1万
查看次数

如何使用Linq对通用列表进行排序?

如何在linq中对myScriptCellsCount.MyCellsCharactersCount(list int type)进行排序

    public class MyExcelSheetsCells
    {
        public List<int> MyCellsCharactersCount { get; set; }

        public MyExcelSheetsCells()
        {
            MyCellsCharactersCount = new List<int>();
        }

    }
Run Code Online (Sandbox Code Playgroud)
   void ArrangedDataList(DataTable dTable)
        {
            DAL.MyExcelSheets myexcelSheet = new DAL.MyExcelSheets();
            myScriptCellsCount = new TestExceltoSql.DAL.MyExcelSheetsCells();

            foreach (DataColumn col in dTable.Columns)
                myexcelSheet.MyColumnNames.Add(col.ColumnName.ToString());
            foreach(DataColumn dc in dTable.Columns)
            foreach (DataRow  dr in dTable.Rows)
                myScriptCellsCount.MyCellsCharactersCount.Add(dr[dc].ToString().Length);
          //How can i sort desc
            //myScriptCellsCount.MyCellsCharactersCount = from list in myScriptCellsCount.MyCellsCharactersCount
            //                                            orderby list.CompareTo( descending
            //                                            select list;
            CreatSqlTable(myexcelSheet.MyColumnNames, dTable.TableName, myScriptCellsCount.MyCellsCharactersCount[0].ToString());
            myscript.WriteScript(myscript.SqlScripts);
        }
Run Code Online (Sandbox Code Playgroud)

c# linq sorting generic-list .net-3.5

4
推荐指数
2
解决办法
1万
查看次数