Как передать произвольное количество параметров в 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
Как передать произвольное количество параметров в C#
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.