2
Я не могу понять, как получить тип результата LINQ. Мой набор содержит как строки, так и bools, поэтому я столкнулся с трудностями, когда пытаюсь воздействовать на строки. Я приложил невероятно грубую тренировку, используя try/catch (для смеха), но мне больно, и я бы скорее знал правильный метод получения Типа.Какой тип будет возвращать метод поля?
private AppointmentInfoClass UpdateDataContext(DataSet phaseDataSet) {
var phaseCollection = new AppointmentInfoClass();
var Type = phaseCollection.GetType();
var properties = Type.GetProperties();
var result = from DataRow myRow in DataBindings.CompanyAppsDataSet.Tables[0].Rows
where (int)myRow["AppointmentID"] == ApptID
select myRow;
var k = 0;
foreach (DataRow row in phaseDataSet.Tables[0].Rows) {
string header;
header = row.Field<string>("Header");
foreach (var field in result) {
try {
properties[k].SetValue(phaseCollection, field.Field<string>(header));
}
catch (Exception) {
properties[k].SetValue(phaseCollection, field.Field<bool>(header).ToString());
}
}
k++;
}
return phaseCollection;
}
Что вы точно пытаетесь сделать здесь? Что такое 'header'? Обратите внимание, что ваш 'result' будет представлять собой набор объектов DataRow', поэтому перечисление через' result' не даст вам полей, а строк. – vesan
Извините за отсутствие контекста, я обновил свое оригинальное сообщение с полной функцией. –
Чтобы быть уверенным, вы сохраняете имя DataColumn, которое хотите получить (заголовок), в DataColumn с названием «Заголовок», и вы хотите определить тип DataColumn, имя которого хранится в «заголовке»? –