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 を使用して上記の配列から配列を抽出したいと思います。

policy001,policy002,policy003,policy004

手伝ってくれませんか?私はラムダ式が初めてです。

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 に答える