[英]Can I call a method using method chaining in a foreach loop that is inside another method in C#?
我有以下幾點:
public static void ForEachIterationIn(IEnumerable<T> list, Action<T> action)
{
foreach(T item in list)
{
action(item);
}
}
並且可以這樣稱呼它:
ForEachIterationIn(list, item => DoSomething(item));
是否可以使用方法鏈來執行以下操作?
ForEachIterationIn(list).Do(item => DoSomething(item));
所以如果我決定,我可以擴展它並創建類似的東西:
ForEachIterationIn(list).RemoveWhen(item => item != 10);
這意味着每種方法基本上都會執行以下操作:
foreach(T item in list)
{
Do(action(item));
// Or RemoveWhen(action(item))
// Or whatever method I use in the chain
}
您可以執行以下操作:
public class Iterator
{
public List<string> Items { get; set; }
public Iterator(List<string> items)
{
Items = items;
}
public Iterator AddString(string s)
{
this.Items.Add(s);
return this;
}
public Iterator AddAnotherString(string s)
{
this.Items.Add(s);
return this;
}
public override string ToString()
{
return String.Join('-', this.Items.ToArray());
}
}
然后使用它:
class Program
{
static void Main(string[] args)
{
var items = new List<string> { "a", "b" };
var iterator = new Iterator(items);
Console.WriteLine(iterator.AddString("c").AddAnotherString("d").ToString());
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.