c# - 无法从 IEnumerable 转换为“System.Collections.Generic.IEqualityComparer

标签 c# list ienumerable

您好,我有如下代码。尝试从列表中获取“UnitNo”属性时出现错误:无法从“System.Collections.Generic.IEnumerable>”转换为“System.Collections.Generic.IEqualityComparer”

public class UnitSyncModelSchema
{
    public ICollection<UnitBedRequest> UnitBeds { get; set; }
}

public class UnitBedRequest
{
    public string UnitNo { get; set; }
}

public static List<UnitSyncModelSchema> GetUnitById()
{
    ....
    return List<UnitSyncModelSchema>;
}

static int Main(string[] args)
{
    List<UnitSyncModelSchema> units = GetUnitById();

    //got error on this line
    var UnitNo = new HashSet<string>(vesUnits.Select(s1 => s1.UnitBeds.Select(s2 => s2.UnitNo)));
}

最佳答案

您需要 SelectMany 而不是 Select 因为 UnitBeds 是一个集合:

var UnitNo = new HashSet<string>(vesUnits.SelectMany(s1 => s1.UnitBeds.Select(s2 => s2.UnitNo)));

关于c# - 无法从 IEnumerable 转换为“System.Collections.Generic.IEqualityComparer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56954812/

相关文章:

c# - 在抽象方法中使用泛型

c# - 迁移期间未找到 Entity Framework 外键

c# - 关于索引器和/或泛型的问题

c# - 为什么我不能编辑 IEnumerable 的元素?

c# - 在 IEnumerable 上使用 Observable 集合的优缺点

c# - Autofac 配准支架

c++ - 链接列表(从 'Node<int>*' 到 'int' [-fpermissive]| 的无效转换)

r - 合并不同列表中的多个数据框

python - 基本的 python 。如何禁止函数更改列表?

c# - 有人可以告诉我 List、Collection 和 Enumerable 之间有什么区别?