.NET 3.x Структура и список полей структуры - C#
Формулировка задачи:
Здравствуйте, помогите с задачей:
Есть структура:
как мне представить структуру как массив полей (для того чтобы вывести в комбобокс и пользователь мог сам выбирать поле структуры и присваивать ей значение)
Но появился второй вопрос, как можно теперь применить это в запросе как сделать чтобы в запрос вставить переменную из Естественно так как я написал - не работает, по сему и прошу помощи.
struct MyStruct
{
int ID;
int Teg;
int Unit;
};
Я частично решил проблему, чтобы заполнить
ComboBox
нужными данными из структуры сделал такой метод расширения:public static void SetStructFields<T>(this ComboBox cb) where T : struct
{
cb.Items.Clear();
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("NAME");
var type = typeof(T).GetMembers();
int i = 0;
foreach (var str in type)
{
dt.Rows.Add(new object[]
{
str,
String.Format("({0:000}) {1}", i, str.Name)
});
i++;
}
cb.DataSource = dt;
cb.DisplayMember = "NAME";
cb.ValueMember = "ID";
}LINQ
? все данные у меня хранятся вDictionary<uint, MyStruct> dict;
Что я имею ввиду: скажем есть такой простенький запрос:var query = from s in dict.Value where s.Teg == val select s;
ComboBox
чтобы было что-то на подобии:var field = ((ComboBox)sender).SelectedValue; var query = from s in dict.Value where s[field] == val select s;
И возможно ли вообще присвоение переменной в єтом участке кода:
dict.Value where s[B][field][/B]
Решение задачи: «.NET 3.x Структура и список полей структуры»
textual
Листинг программы
var field = ((ComboBox)sender).SelectedValue;
var query = from s in dict.Value where s.GetType().GetField("field").GetValue(s) == val select s;