我有一个带两个字符串的函数。无法弄清楚如何将这两个字符串合并到LINQ查询中。
这是我的功能:
private void DataBind_GridView_Search(string OptionalArgsSortExpression = "", string OptionalArgsSortDirection = "")
{
List<mainSearchDataModel> Query = GetData();
if (Query != null)
{
/* Problem ... */
Query = from x in Query
orderby OptionalArgsSortExpression.ToString() OptionalArgsSortDirection.ToString()
select x;
/* Problem ... */
GridView_Search.DataSource = Query;
GridView_Search.DataBind();
}
任何意见都将受到高度赞赏。
这是我得到的错误。我也没有使用DLINQ。
'System.Linq.Enumerable.OrderBy(System.Collections.Generic.IEnumerable,System.Func)'无法从用法中推断出来。尝试显式指定类型参数。
更新:
有没有办法对List或IEnumerable进行ORDER。似乎我尝试的一切都行不通。
有一种方法可以将它转换为DataView,但我也遇到麻烦,宁愿不这样做。
答案 0 :(得分:0)
你可以尝试这样的事情(如果你使用DLINQ ,正如他在评论中指出的那样Servy。):
var query = query.OrderBy(String.Format("{0} {1}",OptionalArgsSortExpression,OptionalArgsSortDirection));
答案 1 :(得分:0)
您可以使用我的OrderByString扩展名。它将字符串转换为对实际OrderBy方法的调用,因此它与所有Linq提供程序兼容。
using OrderByExtensions;
Query = Query.OrderBy(OptionalArgsSortExpression.ToString()
+ " " + OptionalArgsSortDirection.ToString())
答案 2 :(得分:-1)
你可以走这条路
GridView.DataSource = Query.OrderBy(o => o.Field1).ThenBy(t => t.Field2).ToList()