簡體   English   中英

我可以在 C# 中另一個方法內的 foreach 循環中使用方法鏈調用方法嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM