为什么我不能比较c#中的两个id?

时间:2016-03-31 08:57:10

标签: c# asp.net-mvc list compare

我试图比较两个ID并得到一些结果。它适用于其他字符串。但不是为此。 我试过这样的。

var neededData = mainFaires.Where(c => c.trimacid == passId );

在这里passId= OX20160330HAVHAV

并在mainFaires列表中,它包含此id。但它没有给出结果。我在这里找到了

var x = mainFaires.ElementAt(27261);

此列表包含相同的id。但没有给出结果。我想不出原因。

2 个答案:

答案 0 :(得分:0)

ElementAt找到了位置。

您应该使用select来查找记录

CREATE OR REPLACE FUNCTION genIds() RETURNS integer AS $$
DECLARE
   edge RECORD;
   i INTEGER := 0;
BEGIN
    FOR edge IN SELECT * FROM network LOOP
        UPDATE network SET id = i WHERE id = edge.id;
        i := i + 1;
    END LOOP;
    RETURN i;
END;
$$ LANGUAGE plpgsql;

答案 1 :(得分:0)

您应该使用.ToList() .First().FirstOrDefault()来实际提交查询并获得结果。您的代码仅定义了查询,但实际上并未将其提交给数据集。

如果您只期望一个项目,那么您的代码应如下所示:

var neededData = mainFaires.Where(c => c.trimacid == passId ).FirstOrDefault();

如果找不到任何项目,则requiredData将为NULL或默认值为。您也可以在此处查看文档https://msdn.microsoft.com/en-us/library/system.linq.enumerable%28v=vs.100%29.aspx