Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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/9/delphi/8.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# 检查linq中是否有最后一项_C#_Linq_Asp.net Mvc 4 - Fatal编程技术网

C# 检查linq中是否有最后一项

C# 检查linq中是否有最后一项,c#,linq,asp.net-mvc-4,C#,Linq,Asp.net Mvc 4,我将让这个bool函数检查包含的记录是否是表中的最后一条记录,并根据其真假结果进行处理 它检查记录islastcard是否是表alllist中的最后一个,如果它是最后一个,则我将根据这些bool结果进行工作- var uploadedfile = (from u in db.CardTables where u.CardID == cardtable.cardID se

我将让这个bool函数检查包含的记录是否是表中的最后一条记录,并根据其真假结果进行处理

它检查记录islastcard是否是表alllist中的最后一个,如果它是最后一个,则我将根据这些bool结果进行工作-

var uploadedfile = (from u in db.CardTables
                                where u.CardID == cardtable.cardID
                                select new CardModel {
                                    cardID = cardtable.cardID,
                                    }).SingleOrDefault();
            if (IsLast(uploadedfile.cardID)) {
                ViewBag.lastitem = true;
            }
            else {
                ViewBag.lastitem = false;
            }
但是这张支票总是给我假的

如何匹配islastcard记录是否是list alllist中的最后一个?

这是因为islastcard是一个包含卡的IEnumerable,而不是卡本身。如果向其中添加了对Single的调用,则代码应能正常工作:

var last = islastcard.SingleOrDefault()
return last != null && last.Equals(alllist[alllist.Count - 1]));
但是,您的代码仍然非常低效,因为您检索整个列表,检查其最后一个itmem,然后丢弃它。此外,您可以实例化卡片对象,以便根据它们的ID进行检查

更好的方法是直接检查最后一项的ID,如下所示:

public bool IsLast(int? id) {
    return id == db.CardTables.Select(c => c.CardID).LastOrDefault();
}
这是因为您的islastcard是包含您的卡的IEnumerable,而不是卡本身。如果向其中添加了对Single的调用,则代码应能正常工作:

var last = islastcard.SingleOrDefault()
return last != null && last.Equals(alllist[alllist.Count - 1]));
但是,您的代码仍然非常低效,因为您检索整个列表,检查其最后一个itmem,然后丢弃它。此外,您可以实例化卡片对象,以便根据它们的ID进行检查

更好的方法是直接检查最后一项的ID,如下所示:

public bool IsLast(int? id) {
    return id == db.CardTables.Select(c => c.CardID).LastOrDefault();
}

是否允许lambda表达式?是否允许lambda表达式?