Я новичок в C #, но я не могу найти четкий ответ на мою проблему мой код:
myDict.Add("BTC",jsonResponse.BTC);
myDict.Add("LTC", jsonResponse.LTC);
myDict.Add("DASH", jsonResponse.DASH);
myDict.Add("ETH", jsonResponse.ETH);
Его использование:
using System;
using System.Collections;
namespace helloApp
{
public class Posts
{
public string BTC { get; set; }
public string DASH { get; set; }
public string ETH { get; set; }
public string LTC { get; set; }
}
}
Я хочу сделать это автоматически:
foreach(string x in jsonResponse){
Console.WriteLine(x);
}
но у меня ошибка:
Ошибка CS1579: оператор foreach не может работать с переменными типа 'Posts', потому что 'Posts' не содержит публичного определения для 'GetEnumerator' (CS1579) (helloApp)
- // Я хочу автоматически искать в своем словаре.
Отредактировано:
Я хочу сгенерировать myDict, используя элементы из публикаций публичного класса, например:
Сейчас я делаю
myDict.Add("BTC",jsonResponse.BTC);
myDict.Add("LTC", jsonResponse.LTC);
myDict.Add("DASH", jsonResponse.DASH);
myDict.Add("ETH", jsonResponse.ETH);
Я хочу сделать foreach:
myDict.Add(string X,jsonResponse.X)
для автоматического получения того же результата, что и в myDict.Add ("BTC" ... и т.д ...)
Edit:
Согласно ответу, спасибо за помощь:
Вы должны сделать словарь переменной:
var myDict = new Dictionary<string, string>();
затем добавьте элементы в myDict:
foreach (var prop in jsonResponse.GetType().GetProperties())
{
if (!myDict.ContainsKey(prop.Name))
myDict.Add(prop.Name, prop.GetValue(jsonResponse)?.ToString());
}
и вы можете использовать его:
foreach (var item in myDict)
{
Console.WriteLine(item.Key + " " + item.Value);
}
Потому что учебники Microsoft делают его более сложным, чем он есть.