2013-03-30 38 views
2

我试图检查文件路径是否有效使用以下代码使用lambda表达式来检查filepath是有效的C#

foreach (int i in UniqueRandom(0, 4)) 
{ 
    var wbImage = getCharBitmap(c, rndFolder, i); 
} 

UniqueRandom方法生成非0之间重复的随机数到4的每个数字i代表一个文件名,可能存在也可能不存在。如果文件存在,则getCharBitmap方法将返回WritableBitmap对象,否则它将返回空值。

我想集成一个lambda表达式来检查该方法是否返回null,然后,如果它不为null,我想记住i值并立即退出foreach循环。

如何以最少量的代码高效地完成此操作?

回答

2

尝试

var firstExisting = UniqueRandom(0, 4) 
    .Select(i => new 
     { 
      Bitmap = GetCharBitmap(c, rndFolder, i), 
      Number = i 
     }) 
    .FirstOrDefault(x => x.Bitmap != null); 

if (firstExisting != null) 
{ 
    int j = firstExisting.Number; 
} 

还是一样没有LINQ:

private static int FirstExisting() 
{ 
    foreach (int i in UniqueRandom(0, 4)) 
    { 
     var wbImage = GetCharBitmap(c, rndFolder, i); 
     if (wbImage != null) 
     { 
      return i; 
     } 
    } 
    throw new Exception("No existing found"); // or return say -1 
} 
+0

我仍然在学习lambda表达式。无论如何,这两个建议都非常有帮助。谢谢! – PutraKg