如何在linq中添加multilet运算符和orderby

本文关键字:multilet 运算符 orderby 添加 linq | 更新日期: 2023-09-27 17:59:55

我在datatable中有更多的列(大约100列)。参见下面的示例:

      第1列|第2列|第3列>||第n列1.尼克|1|美国|…..|值12.大卫|2|Reston|..|值23.结婚|3|西班牙|…..|值34.加入|4|意大利3|。。。。。值4
Dictionary<string, string > dict = new Dictionary<string, string>();
dict.Add("Column_1", "asc");
dict.Add("Column_2", "asc");
dict.Add("Column_1", "desc");
...................
dict.Add("Column_n", "asc");
var myRows = from row in datatable.AsEnumerable()
             let myID = int.Parse(row.Field<string>("Column 2"))
             let name = row.Field<string>("Column 1").Split(';')[1]
             ....
             orderby myID ascending, name descending, ......, column n asc
             select row;

我的问题是如何循环Dictionary中的所有项,以添加更多let语句和orderbyDictionary的所有列。

请帮我解决它。我的英语不好,对不起

如何在linq中添加multilet运算符和orderby

Dictionary<string, string > dict = new Dictionary<string, string>();
dict.Add("col1", "ASC");
dict.Add("col2", "ASC");
dict.Add("col3", "DESC");
DataTable dt = new DataTable();
dt.Columns.Add("col1");
dt.Columns.Add("col2");
dt.Columns.Add("col3");
Random r = new Random();
for (int i = 0; i < 20; i++)
    dt.Rows.Add(r.Next(10), r.Next(4), r.Next(2));
string sort = "";
foreach (KeyValuePair<string, string> entry in dict)
    sort = sort + " " + entry.Key + " " + entry.Value + ",";
sort = sort.Substring(0, sort.Length - 1).Trim();
dt.DefaultView.Sort = sort;
dt = dt.DefaultView.ToTable();