LINQ查询结果为int类型变量

时间:2011-03-23 12:53:56

标签: linq casting

我希望LINQ查询结果在int类型变量中。

我有一个查询,它将始终返回单个int值。我想要那样的结果。

 int interlineId = from cSInterline in codeShareInterline_.AsEnumerable() 
                   where cSInterline.Field<int>("InterCodeId") == interCodeId[0] 
                   select cSInterline.Field<int>("PermitedPercent");

但它返回错误..

3 个答案:

答案 0 :(得分:6)

您的查询返回IEnumerable<int>,在这种情况下只返回一个项目。因此,请在末尾添加SingleSingleOrDefault以仅返回该项目。如果您的查询可能返回的项目超过1项,请使用FirstOrDefault

int interlineId = 
       (from cSInterline in codeShareInterline_.AsEnumerable() 
        where cSInterline.Field<int>("InterCodeId") == interCodeId[0] 
        select cSInterline.Field<int>("PermitedPercent")).SingleOrDefault();

答案 1 :(得分:2)

试试这个:

int interlineId = (from cSInterline in codeShareInterline_.AsEnumerable() 
              where cSInterline.Field<int>("InterCodeId") == interCodeId[0] 
              select cSInterline).Single().Field<int>("InterCodeId");

答案 2 :(得分:1)

试试这个(它应该有用):

 int? interlineId = (from cSInterline in codeShareInterline_.AsEnumerable() 
                   where cSInterline.Field<int>("InterCodeId") == interCodeId[0] 
                   select cSInterline.Field<int>("PermitedPercent")).FirstOrDefault();
相关问题