gpt4 book ai didi

c# - 在一行中创建 IEnumerable 并将其传递给方法

转载 作者:太空宇宙 更新时间:2023-11-03 13:59:28 25 4
gpt4 key购买 nike

我有这几行代码

FilterCondition CustomerID = new FilterCondition("Customer_ID",cust.Customer_ID,FilterCondition.FilterOperator.Equals);
List<FilterCondition> conditions = new List<FilterCondition>();
conditions.Add(CustomerID);
conditions.Add(Location_is_last_used);
Location loct = Store.Select<Location>(conditions).First();

我试着让它像这样工作

Store.Count<Customer>(new List<FilterCondition>().Add(new FilterCondition("Customer_name",name,FilterCondition.FilterOperator.Equals))

但这行不通,因为 Add 返回 void 并且它让我发疯,有没有其他方法可以在一行中解决这个问题?我真的不想为我需要的一切写条件。

求助!问候,卢卡

最佳答案

你可以写一个扩展方法:

public static class MyExtensions
{
public static ICollection<T> AddChainable<T>(this ICollection<T> collection, T newItem)
{
collection.Add(newItem);
return collection;
}
}

然后您可以按如下方式调用它:

Store.Count<Customer>(new List<FilterCondition>().AddChainable(new FilterCondition("Customer_name",name,FilterCondition.FilterOperator.Equals));

(假设 Store.Count<T> 作用于 ICollection<T> ,它引入了 Count 属性,否则适当调整集合类型。

与列表初始化器语法相比的优势在于,您也可以将其用于已创建的列表对象(例如,如果您从工厂方法中获取列表对象)。

关于c# - 在一行中创建 IEnumerable 并将其传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11046953/

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