linq - LINQ 分组和排序无法按预期工作
问题描述
我的预期输出是:
扩展名:.txt——CATS.TXT——DOGS.TXT 扩展名:.pdf——INFO.PDF——TEST2.PDF 扩展名:.doc——Summary.DOC——TEST1.DOC
以下是功能。
public void TestGroupByFluentSyntax()
{
string[] files = new string[] { "test1.doc", "test2.pdf", "cats.txt", "dogs.txt", "info.pdf", "summary.doc" };
IEnumerable<IGrouping<string, string>> query = files.GroupBy(file => System.IO.Path.GetExtension(file), file => file.ToUpper())
.OrderBy(grouping => grouping.Key);
foreach(IGrouping<string, string> grouping in query)
{
Console.WriteLine("Extension: " + grouping.Key);
foreach (string fileName in grouping)
Console.WriteLine(" -- " + fileName);
}
}
public void TestGroupByFluentSyntax2()
{
string[] files = new string[] { "test1.doc", "test2.pdf", "cats.txt", "dogs.txt", "info.pdf", "summary.doc" };
IEnumerable<IGrouping<string, string>> query = files.OrderBy(file => file).GroupBy(file => System.IO.Path.GetExtension(file), file => file.ToUpper());
foreach (IGrouping<string, string> grouping in query)
{
Console.WriteLine("Extension: " + grouping.Key);
foreach (string fileName in grouping)
Console.WriteLine(" -- " + fileName);
}
}
如果我先订购,然后将其分组即可。但是分组和排序没有。我在分组然后订购的函数' TestGroupByFluentSyntax ()'上缺少什么?
解决方案
This worked:
public void TestGroupByFluentSyntax()
{
Console.WriteLine("TestGroupByFluentSyntax");
string[] files = new string[] { "test1.doc", "test2.pdf", "cats.txt", "dogs.txt", "info.pdf", "summary.doc" };
IEnumerable<IGrouping<string, string>> query = files.GroupBy(file => System.IO.Path.GetExtension(file), file => file.ToUpper());
foreach (IGrouping<string, string> grouping in query)
{
Console.WriteLine("Extension: " + grouping.Key);
foreach (string fileName in grouping.OrderBy(name => name))
Console.WriteLine(" -- " + fileName);
}
}
推荐阅读
- angular - 以角度 6 显示 Spinner 直到 API 响应
- unity3d - 广告未在 Game Unity 上展示
- php - 来自 WordPress 元字段的数组中的名称键
- reactjs - Reactjs - 从另一个组件函数获取计算值后更新父级的状态
- react-native - 如何在屏幕上设置固定位置的反应原生动作按钮
- javascript - 基本的 Angular CRUD 服务?
- javascript - 启动新窗口,设置其大小和参数,从图像映射
- ios - 如何在 Swift 4 中从 WKWebView 获取 cookie 值?
- linux - 将 Angular 6 应用程序部署到 linux 共享主机(Apache 服务器)
- c++ - 我需要把 constexpr 放在 else-if 之后吗?