c# - 如何对 IEnumerable 上的一个或多个键进行排序> 结果集?
问题描述
我们有一个对 API 进行 ajax 调用的视图,该 API 返回一个类型的结果集IEnumerable<Dictionary<string, object>>
并将该数据绑定到 jQuery DataTable。每个Dictionary<string, object>
本质上代表一个 DataRow。如何IEnumerable<Dictionary<string, object>>
根据一个或多个键并按照服务器端指定的顺序对该集合进行排序?
var sortOrderables = (JArray)_dtRequest["order"];
for (int i = 0; i < sortOrderables.Count; i++)
{
var columnIdx = (int)sortOrderables[i]["column"];
var columnDir = (string)sortOrderables[i]["dir"];
var column = (string)_dtRequest.SelectToken(string.Format("columns[{0}].data", columnIdx));
foreach(Dictionary<string, object> dataRow in _dataSet)
{
}
}
解决方案
这段代码会起作用吗?
DataTable dt = new DataTable();
Dictionary<string, DataTable> dict = dt.AsEnumerable()
.GroupBy(x => x.Field<string>("Col A"), y => y)
.ToDictionary(x => x.Key, y => y.CopyToDataTable());
foreach (KeyValuePair<string, DataTable> key in dict.AsEnumerable())
{
int numberColumns = key.Value.Columns.Count;
for (int i = numberColumns - 1; i >= 0; i--)
{
key.Value.AsEnumerable().OrderBy(x => x[i]);
}
}
推荐阅读
- imagemagick-convert - 转换图像时可以偏移 x 但不能偏移 y
- firebase - Flutter 未来完整列表返回 null
- r - 请帮助我在 R 中调试我的代码以查找奇数和偶数
- reactjs - Windows Server 2019 上的主机反应应用程序不起作用
- python - 如何让python不在循环中等待我的输入?
- r - ggplot:geom_dotplot,将点集中在多条线上
- python - 在 Python 中隐藏类异常的 Traceback 消息
- angular - 默认选择 rRadio Button 角度材质
- javascript - 从异步存储中获得承诺而不是价值
- graph - 在 Neo4j 的范围内设置关系属性