【发布时间】:2021-10-07 08:39:11
【问题描述】:
我有点挣扎。
我的程序中有一个List<HeadStruc_Table>。
类 HeadStruct 如下所示:
public partial class HeadStruct_Table : IComparable<HeadStruct_Table>
{
public string colName { get; set; }
public string colName_edit { get; set; }
public string alternativeNames { get; set; }
public int Table_ID { get; set; }
public bool colFound { get; set; }
public CheckBox cBox { get; set; }
我不知道如何使用 parameters (List<HeadStruct_Table>, HeadStruct_Table.colName) 创建一个方法,然后 returns 一个 List<TypeOf(HeadStruct_Table.colName)> 在这种特定情况下只包含 colName 的值。
当然,它也适用于 bool 甚至 CheckBox 属性。
由于参数 HeadStruct_Table.colName 现在不起作用,因为它被声明为 public 而不是 public static ,我必须将其声明为 public static 还是有任何其他机会传递特定属性。也许通过使用谓词?
以后可能会是这样吗?
public static IList<T> getList<T>(List<HeadStruct_Table> list, Func<HeadStruct_Table, T> getType)
{
var newList = new List<T>();
我只是不知道如何获取特殊属性,然后在方法中读出这些值。如果没有字符串,我不想使用字符串作为参数。
谁有想法?
这是我的第一个问题。我愿意接受任何建议来改进在这里提出问题。谢谢。
【问题讨论】:
-
你为什么不使用
Select()?你描述的方法是Select。它实际上接受Func<Whatever,T>。你已经可以写list.Select(t=>t.colName).ToList() -
这很快,也是我所需要的。非常感谢,我还真没找到那个方法。
-
@Envyy System.Linq
标签: c# class generic-list