选择列表 C# 中定义为枚举的项目

Selecting items defined as enum in a list C#

我是 C# 的初学者。我想要做的是 return 一个包含 4 项的列表。我将定义为枚举的电子书项目映射到 BookList 中,我只想 return 将这些项目定义为枚举。但是,Lib class 中有多个属性。我只是不知道如何从列表中 return 它们。

如果我在注释行中执行相同操作,列表中的所有属性 return。另外,我不能 return 其他枚举项。我不知道该怎么做。

这是我的映射部分:

public static Book Map(Tax tax)
{
    Book b = new Book();
    b.BookList.Where(x => x.BookType == EBook.Type1).FirstOrDefault().Dual = tax.TaxType1;
    b.BookList.Where(x => x.BookType == EBook.Type2).FirstOrDefault().Dual = tax.TaxType2;

    b.BookList = new List<Lib> { new Lib() { BookType = EBook.Type1 } }; //here
}

图书class:

public class Book
{
    public Book();
    public List<Lib> BookList { get; set; }
}

库 Class:

public class Lib: ILib
{
    public EBook BookType;
    public double Dual;
    .....
}

电子书部分:

public enum EBook
{
    Type1 = 1,
    Type2 = 2,
    Type3 = 3,
    Type4 = 4
}

税收class:

public interface Tax
{
    double TaxType1 { get; set; }
    double TaxType2 { get; set; }
    double TaxType3 { get; set; }
    double TaxType4 { get; set; }
}

来自 Postman 的 json returning 应如下所示:

"BookList": [
{
    "Type1": 12.4,
    "Type2": 15.5,
    "Type3": 10.8,
    "Type4": 7.55
}]

它应该 return 定义为枚举的项目的相应 TaxType 值。

看来您只需要为每个 BookType 创建一个 Lib 和各自的 TaxType:

b.BookList = new List<Lib> 
{ 
    new Lib { BookType = EBook.Type1, Dual = tax.TaxType1 },
    new Lib { BookType = EBook.Type2, Dual = tax.TaxType2 },
    new Lib { BookType = EBook.Type3, Dual = tax.TaxType3 },
    new Lib { BookType = EBook.Type4, Dual = tax.TaxType4 }
};