Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用lambda表达式检查文件路径是否有效c#_C#_Lambda_Windows Phone 8 - Fatal编程技术网

使用lambda表达式检查文件路径是否有效c#

使用lambda表达式检查文件路径是否有效c#,c#,lambda,windows-phone-8,C#,Lambda,Windows Phone 8,我试图使用以下代码检查文件路径是否有效 foreach (int i in UniqueRandom(0, 4)) { var wbImage = getCharBitmap(c, rndFolder, i); } UniqueRandom方法生成0到4之间的非重复随机数。每个编号i代表一个文件名,该文件名可能存在,也可能不存在。如果文件存在,则getCharBitmap方法将返回writeablebitmap对象,否则将返回null 我想集成一个lambda表达式来检查该方法是否返回

我试图使用以下代码检查文件路径是否有效

foreach (int i in UniqueRandom(0, 4))
{
    var wbImage = getCharBitmap(c, rndFolder, i);
}
UniqueRandom
方法生成0到4之间的非重复随机数。每个编号
i
代表一个文件名,该文件名可能存在,也可能不存在。如果文件存在,则
getCharBitmap
方法将返回
writeablebitmap
对象,否则将返回null

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

如何以最少的代码高效地执行此操作?

试试看

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
}

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