2014-04-29 31 views
1

我有一个收集列表。使用Linq获取列表中的子字符串<string>

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/"部分字符串在同一个列表中。

我试着用子串和拆分Linq查询,但无法获得预期的结果。

回答

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 
+0

我认为你可以减少 – miniBill

+0

@miniBill,呃不是很确定你的意思,你是说它的性能可以提高吗? – Habib

+0

我认为你可以写(现在不能检查)var fileNames = mycollections.Select(Path.GetFileName).ToList();' – miniBill

3

如何:

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

这将分割每个字符串斜杠并返回最后一个项目。

相关问题