2016-03-10 3 views
1

Могу ли я создать массив, содержащий stats, который имеет значения для них, как показано ниже?Как я могу составить список, содержащий статистику, имеющую значения?

Я знаю, что этот конкретный код не работает, но есть ли способ сделать что-то подобное?

string[] stats = new string[] 
{ 
    Money = 100, 
    income = 5, 
}; 

И если я хотел бы видеть все stats в списке:

foreach (string var in stats) 
{ 
    Console.WriteLine(var.ToString()); 
} 

ВЫВОД:

Деньги = 100

Доход = 5

И так далее ...

+0

Спасибо всем за помощь! – Markus121

ответ

2

Вам нужен класс с именем stats и переопределить ToString метод, как это:

public class Stats 
{ 
    public int Money { get; set; } 
    public int Income { get; set; } 

    public override string ToString() 
    { 
     return Money + " " + Income; 
    } 
} 

И потом:

List<Stats> stats = new List<Stats> 
{ 
    new Stats 
    { 
     Money = 100, 
     Income = 5 
    }, 
    new Stats 
    { 
     Money = 200, 
     Income = 10 
    } 
}; 

foreach (var item in stats) 
{ 
    Console.WriteLine(item.ToString()); 

    //Or like this: 
    Console.WriteLine("Money = {0} , Income = {1}", item.Money , item.Income); 

    //Or with c#6 Interpolated Strings 
    Console.WriteLine($"Money = {item.Money}"); 
    Console.WriteLine($"Income = {item.Income}"); 
} 
0

Вы можете использовать

Dictionary<string,int> Values = new Dictionary<string,int>(); 
    Values.Add("Money",100); 
    Values.Add("Income",5); 

где ключ будет (строка) деньги, доход и т. Д. И стоимость 100, 5 (оценка е) и т.д.

+1

Этот вопрос я пробовал на самом деле. Однако, когда я пытаюсь умерить деньги, я получаю сообщение о том, что ключ уже существует. – Markus121

+0

В словаре вы можете добавить только уникальные ключи. Если вы хотите получить множество ценностей за деньги. Словарь <строка, список > Значения = новый словарь <строка, список >(); Values.Add («Деньги», MoneyList); Values.Add («Доход», IncomeList); ///, где moneyList - список всех денег и доходовList - список всех доходов –

0

Вы можете использовать класс:

public class YourClassName 
{ 
    public int Money { get; set; } 
    public int Income { get; set; } 
} 

Затем вы можете использовать:

foreach (YourClassName item in items) 
{ 
    Console.WriteLine($"Money = {item.Money}"); 
    Console.WriteLine($"Income = {item.Income}"); 
} 

И хранить его в список, как это:

List<YourClassName> items = new List<YourClassName>(); 
items.Add(new YourClassName() 
{ 
    Income = 5, 
    Money = 100 
}); 
Смежные вопросы