c# - 选择列表中定义为枚举的项目C#
问题描述
我是 C# 的初学者。我想要做的是返回一个包含 4 个项目的列表。我在 BookList 中映射定义为枚举的电子书项目,我只想返回这些定义为枚举的项目。但是,Lib 类中有多个属性。我只是不知道如何从列表中返回它们。
如果我在注释行中执行相同操作,则列表中的所有属性都会返回。另外,我不能返回其他枚举项。我不知道该怎么做。
这是我的映射部分:
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
}
书类:
public class Book
{
public Book();
public List<Lib> BookList { get; set; }
}
库类:
public class Lib: ILib
{
public EBook BookType;
public double Dual;
.....
}
电子书部分:
public enum EBook
{
Type1 = 1,
Type2 = 2,
Type3 = 3,
Type4 = 4
}
税级:
public interface Tax
{
double TaxType1 { get; set; }
double TaxType2 { get; set; }
double TaxType3 { get; set; }
double TaxType4 { get; set; }
}
从 Postman 返回的 json 应该如下所示:
"BookList": [
{
"Type1": 12.4,
"Type2": 15.5,
"Type3": 10.8,
"Type4": 7.55
}]
它应该返回定义为枚举的项目的相应 TaxType 值。
解决方案
似乎您只需要Lib
使用各自的 TaxType 为每个 BookType 创建一个:
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 }
};
推荐阅读
- c# - 在 Step Function 中将 Json 字符串传递给 AWS Lambda - JsonReaderException 错误
- python - 使用不完整数据填充 Pandas DataFrame
- firebase - Cloud Firestore - Cloud Functions:TypeError:collectionRef.child 不是函数
- python - 在 Flask 模板中显示属性对象而不是值
- python - 将 pd.value_counts() 和定义的变量附加到一行数据框
- linkedin - 即使 og:image 可用,LinkedIn 仍会检查页面中的其他图像
- javascript - 如何解决 state.set 不是函数错误?
- python-2.7 - Python HIDAPI 故障排除:open() 失败
- python - sklearn 导入返回错误
- google-apps-script - 您可以将导入的独立脚本中的函数用作单元格公式自定义函数吗?