c# - 将 linq 查询结果转换为枚举

标签 c# linq enums linq-to-objects

我有一个类似对象的列表。此列表中的对象都有一个名为 Name 的属性和一个名为 Mk2Result 但属于枚举类型 Mk2TestResult 的枚举类型。

现在在 for 循环中,我想看看当前的 itterator 整数是否作为对象的名称存在于列表中:

for(......
{
//    
    var query = 
        from pin in _pins 
        where pin.Name == i.ToString() 
        select pin.Mk2Result;

    Mk2TestResult result = (Mk2TestResult)query;

    //Do some more stuff
}

但是编译器报错了以下信息:

Cannot convert type 'System.Collections.Generic.IEnumerable<DataModels.Mk2TestResult>' to 'DataModels.Mk2TestResult'

如何正确返回枚举类型的查询结果?

最佳答案

尝试

Mk2TestResult result = (Mk2TestResult)query.FirstOrDefault();

因为您正试图将列表转换为一个对象。 但是你只会得到第一个对象。您可以在 FirstOrDefault 函数参数中使用函数来获取所需的对象。

关于c# - 将 linq 查询结果转换为枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11953093/

相关文章:

c# - LINQ 中的左外连接

c# - 如何使用 LINQ 在 C# 中查找嵌套的 selenium WebElement?

c# - 空字符串到双 C#

javascript - 按钮点击完成后asp.net执行javascript函数

c# - 如何将 JSON 属性作为 xml 元素的属性转换为 XML

Java 枚举的设计问题

c++ - 我怎样才能干净地验证并转换为非顺序的枚举?

c# - 执行任务XamlCTask- Xamarin时出错

c# - LINQ,排除某些项目

c++ - 将枚举传递给引用 int 的函数