В проекте C # ASP.Net MVC я пытаюсь создать список из переменной LINQ.
Теперь это может быть довольно простой вещью, но я просто не могу заставить это работать без использования фактических имен столбцов для данных в этой переменной. Дело в том, что в стремлении сделать программу как можно более динамичной, я оставляю за собой хранимую процедуру для вывода данных. Может быть любое количество столбцов, в зависимости от того, откуда данные извлекаются. Все, о чем я беспокоюсь, - это перенести все их значения в список , чтобы я мог сравнивать введенные пользователем значения с ними в программе.
Указание на столбцы по их именам в коде означает, что мне придется создавать десятки перегруженных методов, которые в основном делают одно и то же. Ниже ложный неработающий код. Но это должно открыть представление о том, что я имею в виду.
// call for stored procedure
var courses = db.spFetchCourseInformation().ToList();
// if the data fails a check on a single row, it will not pass the check
bool passed = true;
foreach (var i in courses)
{
// each row should be cast into a list of string, which can then be validated
// on a row-by-row basis
List courseRow = new List();
courseRow = courses[i]; // yes, obviously this is wrong syntax
int matches = 0;
foreach (string k in courseRow)
{
if (validator.checkMatch(courseRow[k].ToString()))
{
matches++;
}
}
if (matches == 0)
{
passed = false;
break;
}
}
Ниже приведен пример того, как я должен это сделать, потому что мне нужно использовать имена для столбцов
for (int i = 0; i < courses.Count; i++)
{
int matches = 0;
if (validator.checkMatch(courses[i].Name))
matches++;
if (validator.checkMatch(courses[i].RandomOtherColumn))
matches++;
if (validator.checkMatch(courses[i].RandomThirdColumn))
matches++;
if (validator.checkMatch(courses[i].RandomFourthColumn))
matches++;
/* etc...
* etc...
* you get the point
* and one of these for each and every possible variation from the stored procedure, NOT good practice
* */
Спасибо за помощь!