gpt4 book ai didi

linq - 在函数中使用 T 匿名参数验证 Linq 对象的类型、属性

转载 作者:行者123 更新时间:2023-12-04 06:24:32 24 4
gpt4 key购买 nike

在 C# 中,我有一个可以传递 List<T> 的公共(public)函数.如何验证T的类型的问题,在每种情况下获取对象的属性?

/// <param name="olddatas">The list of T Linq object, that need to 
/// convert in some column </param>
/// <param name="convertedColumn">example,divide by comma:
/// "column1,column2,column3"</param>
/// <returns></returns>
public static List<T> ConvertData<T>(List<T> olddatas, string convertedColumn)
{
foreach (var olddata in olddatas)
{
//Pase the type of olddata?
//Get the property of every column in convertedColumn parameter?
}
//return new List<T> with some column data in olddatas are changed
}

最佳答案

如果你的类型共享一个基类或接口(interface),你可以constrain your method到该接口(interface),并直接访问该接口(interface)的成员。

如果它们是 T 的无关类型,那么您可能需要考虑为每种类型使用单独的方法重载。这比检查方法内部的类型并单独处理每种类型所产生的困惑要容易维护。

话虽如此,您可能只想考虑使用 Linq 的 Select方法而不是你自己的ConvertData<T> . Select用于映射操作 - 将数据从一种形式转换为另一种形式。

关于linq - 在函数中使用 T 匿名参数验证 Linq 对象的类型、属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6195107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com