Как передать произвольное количество параметров в C#

Используйте ключевое слово c#-language params для передачи переменного c#.net числа аргументов:

   private static void HowMayItems(params T[] values) {
        foreach (T val in values) { 
            //Query how many items here..
        }
    }

Также вы .cs-file можете создать предикат и .cs-file передать ему фильтр параметров. В character-arrays методе вы можете вернуть c#-language объединение всех результатов. Что-то character-arrays вроде этого:

public class Item { 
    public string Name { get; set; }
}
public class ItemFilter {
    public string Name { get; set; }
    public ItemFilter(string name) {
        Name = name;
    }
    public bool FilterByName(Item i) {
        return i.Name.Equals(Name);
    }
}

public class ItemsTest {
    private static List HowMayItems(List l,params ItemFilter[] values)
    {
        List results= new List();
        foreach(ItemFilter f in values){
            Predicate p = new Predicate(f.FilterByName);
            List subList = l.FindAll(p);
            results.Concat(subList);
        }
        return results;
    }
}

РЕДАКТИРОВАТЬ:

Хорошо, как bytearray насчет моей версии смешанных character-arrays орехов :):

public enum ItemTypes{
    Balloon,
    Cupcake,
    WaterMelon
    //Add the rest of the 26 items here...
}

public class ItemFilter {
    private ItemTypes Type { get; set; }
    public ItemFilter(ItemTypes type) {
        Type = type;
    }
    public bool FilterByType(ItemTypes type) {
        return this.Type == type;
    }
}

public class PicnicTable {
    private List Items;

    public PicnicTable() {
        Items = new List();
    }

    public void AddItem(ItemTypes item) {
        Items.Add(item);
    }

    public int HowMayItems(ItemTypes item)
    {
        ItemFilter filter = new ItemFilter(item);
        Predicate p = new Predicate(filter.FilterByType);
        List result = Items.FindAll(p);
        return result.Count;
    }
}

public class ItemsTest {
    public static void main(string[] args) {
        PicnicTable table = new PicnicTable();
        table.AddItem(ItemTypes.Balloon);
        table.AddItem(ItemTypes.Cupcake);
        table.AddItem(ItemTypes.Balloon);
        table.AddItem(ItemTypes.WaterMelon);
        Console.Out.WriteLine("How Many Cupcakes?: {0}", table.HowMayItems(ItemTypes.Cupcake));
    }
}

c#

arrays

parameters

2022-10-06T20:18:52+00:00
Вопросы с похожей тематикой, как у вопроса:

Как передать произвольное количество параметров в C#