我有一个包含多个字符串的列表,我需要通过它们的后缀对它们进行操作。唯一没有改变的是字符串的开头(它们总是ManifestXXX.txt,FileNameItems1XXX ......)。带后缀的字符串结尾每次都不同。这是我到目前为止(Linq Pad):
var filesName = new[] { "ManifestSUFFIX.txt",
"FileNameItems1SUFFIX.txt",
"FileNameItems2SUFFIX.txt",
"FileNameItems3SUFFIX.txt",
"FileNameItems4SUFFIX.txt",
"ManifestWOOT.txt",
"FileNameItems1WOOT.txt",
"FileNameItems2WOOT.txt",
"FileNameItems3WOOT.txt",
"FileNameItems4WOOT.txt",
}.AsQueryable();
var query =
from n in filesName
group n by n.EndsWith("SUFFIX.txt") into ere
select new{ere} ;
query.Dump();
GROUP中的情况并不好。我想在组中尝试使用嵌套的SELECT获取所有可能的后缀,但我找不到办法。
我如何拥有3个不同的组,按其后缀与Linq分组?有可能吗?
*吉米答案很棒,但仍然没有按照预期的方式工作。任何修复?
答案 0 :(得分:3)
按后缀分组,而不是与任何特定的匹配。
...
group by GetSuffix(n) into ere
...
string GetSuffix(string n) {
return Regex.Replace(n,"^Manifest|^FileNameItems[0-9]+", "");
}