使用Linq </string>获取List <string>集合中的子字符串

时间:2014-04-29 14:57:54

标签: c# linq .net-4.5

我是一个收藏清单。

List<string> mycollections = new List<string>(new string[] 
            { 
                "MyImages/Temp/bus.jpg", 
                "MyImages/Temp/car.jpg", 
                "MyImages/Temp/truck.jpg", 
                "MyImages/Temp/plane.jpg", 
                "MyImages/Temp/ship.jpg",                 
            });

我只需要列表中的文件,例如bus.jpg, car.jpg.....。这里我不需要 "MyImages/Temp/"部分字符串在同一个列表中。

我尝试使用Substring和Split与Linq查询,但无法获得预期的结果。

2 个答案:

答案 0 :(得分:11)

使用Path.GetFileName代替子字符串,如:

var fileNames = mycollections.Select(r => Path.GetFileName(r)).ToList();

输出:

var fileNames = mycollections.Select(r => Path.GetFileName(r));
foreach (var item in fileNames)
{
    Console.WriteLine(item);   
}

输出:

bus.jpg
car.jpg
truck.jpg
plane.jpg
ship.jpg

答案 1 :(得分:4)

这个怎么样:

mycollections.Select(s => s.Split('/').Last());

这会用斜线分割每个字符串并返回最后一项。