Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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
C# 已从列表中获取值,并希望获取将列表作为属性的项的id_C#_Asp.net_Asp.net Mvc_Linq - Fatal编程技术网

C# 已从列表中获取值,并希望获取将列表作为属性的项的id

C# 已从列表中获取值,并希望获取将列表作为属性的项的id,c#,asp.net,asp.net-mvc,linq,C#,Asp.net,Asp.net Mvc,Linq,我的问题是: public ActionResult DeleteImage(string imagepath) { int tourid = db.Tours.Where(x => x.Images.Where(y => y.Path == imagepath)); ... 我有一张图片列表。图像有路径。我的控制器知道文件的路径,但我需要巡更的id。用foreach很容易,但我想用linq解决这个问题 谢谢 编辑: Foreach解决方案: int tourid; fo

我的问题是:

public ActionResult DeleteImage(string imagepath)
{
    int tourid = db.Tours.Where(x => x.Images.Where(y => y.Path == imagepath));

...
我有一张图片列表。图像有路径。我的控制器知道文件的路径,但我需要巡更的id。用foreach很容易,但我想用linq解决这个问题

谢谢
编辑: Foreach解决方案:

int tourid;
foreach (var tour in db.Tours.ToList())
{
    foreach (var image in tour.Images)
    {
        if (image.Path == imagepath)
        {
            tourid = tour.TourID;
        }
    }
}

您可以使用
First或default
First
Any

int tourId = db.Tours.First(tour => tour.Images.Any(img => img.Path == imagepath)).Id;
如果巡更不存在,这将引发异常。
以下内容将不适用

int tourId = -1;
var tour = db.Tours.
    FirstOrDefault(tour => tour.Images.Any(img => img.Path == imagepath));

if (tour != null)
{
    tourId = tour.Id;
}
这基本上转化为 “在tours中,找到图像的
路径的
第一个
,其中
任何
等于
图像路径


关于
Linq
有很多教程。我建议你调查一下

您可以使用
First或default
First
Any

int tourId = db.Tours.First(tour => tour.Images.Any(img => img.Path == imagepath)).Id;
如果巡更不存在,这将引发异常。
以下内容将不适用

int tourId = -1;
var tour = db.Tours.
    FirstOrDefault(tour => tour.Images.Any(img => img.Path == imagepath));

if (tour != null)
{
    tourId = tour.Id;
}
这基本上转化为 “在tours中,找到图像的
路径的
第一个
,其中
任何
等于
图像路径


关于
Linq
有很多教程。我建议你调查一下

您可以使用
First或default
First
Any

int tourId = db.Tours.First(tour => tour.Images.Any(img => img.Path == imagepath)).Id;
如果巡更不存在,这将引发异常。
以下内容将不适用

int tourId = -1;
var tour = db.Tours.
    FirstOrDefault(tour => tour.Images.Any(img => img.Path == imagepath));

if (tour != null)
{
    tourId = tour.Id;
}
这基本上转化为 “在tours中,找到图像的
路径的
第一个
,其中
任何
等于
图像路径


关于
Linq
有很多教程。我建议你调查一下

您可以使用
First或default
First
Any

int tourId = db.Tours.First(tour => tour.Images.Any(img => img.Path == imagepath)).Id;
如果巡更不存在,这将引发异常。
以下内容将不适用

int tourId = -1;
var tour = db.Tours.
    FirstOrDefault(tour => tour.Images.Any(img => img.Path == imagepath));

if (tour != null)
{
    tourId = tour.Id;
}
这基本上转化为 “在tours中,找到图像的
路径的
第一个
,其中
任何
等于
图像路径



关于
Linq
有很多教程。我建议你调查一下

很好,好像有用。谢谢。你能告诉我如何在这里张贴代码块吗?看来我太笨了,不能在这里做代码块。太棒了!请注明答案!代码块?使用四个空格。然后编写代码,或者在编辑器中突出显示代码并单击
{}
图标。我建议你也看看这个链接:谢谢。我不经常在这里发帖。但现在我知道了如何正确地发布代码;)而且这些教程也帮不上忙。我从java切换到c#。你在用resharper?我想我们学习的方式都不一样。学习的一部分不是理解,记住这一点。我现在不使用ReSharper。我不是大四学生,还有很多东西要学。我更多的是在客户端。与linq合作约3年。但你是对的,我们的学习方式不同。我似乎在学习linq的东西有点慢;)很好,好像有用。谢谢。你能告诉我如何在这里张贴代码块吗?看来我太笨了,不能在这里做代码块。太棒了!请注明答案!代码块?使用四个空格。然后编写代码,或者在编辑器中突出显示代码并单击
{}
图标。我建议你也看看这个链接:谢谢。我不经常在这里发帖。但现在我知道了如何正确地发布代码;)而且这些教程也帮不上忙。我从java切换到c#。你在用resharper?我想我们学习的方式都不一样。学习的一部分不是理解,记住这一点。我现在不使用ReSharper。我不是大四学生,还有很多东西要学。我更多的是在客户端。与linq合作约3年。但你是对的,我们的学习方式不同。我似乎在学习linq的东西有点慢;)很好,好像有用。谢谢。你能告诉我如何在这里张贴代码块吗?看来我太笨了,不能在这里做代码块。太棒了!请注明答案!代码块?使用四个空格。然后编写代码,或者在编辑器中突出显示代码并单击
{}
图标。我建议你也看看这个链接:谢谢。我不经常在这里发帖。但现在我知道了如何正确地发布代码;)而且这些教程也帮不上忙。我从java切换到c#。你在用resharper?我想我们学习的方式都不一样。学习的一部分不是理解,记住这一点。我现在不使用ReSharper。我不是大四学生,还有很多东西要学。我更多的是在客户端。与linq合作约3年。但你是对的,我们的学习方式不同。我似乎在学习linq的东西有点慢;)很好,好像有用。谢谢。你能告诉我如何在这里张贴代码块吗?看来我太笨了,不能在这里做代码块。太棒了!请注明答案!代码块?使用四个空格。然后编写代码,或者在编辑器中突出显示代码并单击
{}
图标。我建议你也看看这个链接:谢谢。我不经常在这里发帖。但现在我知道了如何正确地发布代码;)而且这些教程也帮不上忙。我从java切换到c#。你在用resharper?我想我们学习的方式都不一样。学习的一部分不是理解,记住这一点。我现在不使用ReSharper。我不是大四学生,还有很多东西要学。我更多的是在客户端。与linq合作约3年。但你是对的,我们的学习方式不同。我似乎在学习linq的东西有点慢;)