3
var result=list.select(element=>element.split['_']).list();
/* I want to extract the part of the file name from a list of file names */

我有一个文件名数组,我想从数组中为每个文件名提取部分名称

例子:

0-policy001_Printedlabel.pdf
1-policy002_Printedlabel.pdf
2-policy003_Printedlabel.pdf
3-policy004_Printedlabel.pdf

现在我想使用 Linq 从上面的数组中提取一个数组,这只给了我

政策001,政策002,政策003,政策004

你能帮我么?我是 lambda 表达式的新手。

4

4 回答 4

4
Regex regex = new Regex(@".+(policy[0-9]+).+");

var newarray = yourarray.Select(d=>regex.Match(d))
                        .Where (mc => mc.Success)
                        .Select(mc => mc.Groups[1].Value)
                        .ToArray();
于 2012-12-14T15:58:32.583 回答
4
List<string> output = fileList.Select(fileName => fileName.Split(new char[] {'-','_'})[1]).ToList()
于 2012-12-14T15:59:00.663 回答
1

如果数字是索引

string[] output = fileList.Select(fileName => fileName.Split(new char[] {'_'})[0]).ToArray();

如果数字是文件名的一部分

string[] output = fileList.Select(fileName => fileName.Split(new char[] {'-', '_'})[1]).ToArray();
于 2012-12-14T15:56:09.697 回答
0

如果它总是那么严格:

string[] result = list
    .Select(fn => Path.GetFileNameWithoutExtension(fn)
                      .Split(new[] { '-', '_' }, StringSplitOptions.None)
                      .ElementAtOrDefault(1))
    .ToArray();
于 2012-12-14T16:07:31.117 回答