Выборка по комбинации разных параметров - C#
Формулировка задачи:
Доброго времени.
Подскажите пожалуйста. Всю голову сломал.
Как реализовать множественную выборку из таблиц.
ЗЫ: punishment - типа штраф, наказание.
ЗЫЫ: сорри, за странный вид таблиц, что-то [tr][td] он игнорирует...
Необходимо выводить список автомобилей в соответствии с фильтром.
Но комбинаций его задания много, не писать же запрос под каждый случай! О_О
Вопрос, а как это делается по человечески?
Например:
Вывести авто заданного цвета и модели
Вывести авто определённой модели
Вывести авто определённой модели и по фрагменту номера
Вывести авто по фрагменту номера и цвету
Вывести авто на которые налагались штрафы, но только определённого цвета
Вывести авто сумма штрафов у которых больше N и определённый производитель...
И так далее...
Что-то типа "Отбора и сортировки" в 1С
http://v8.1c.ru/overview/images/PlUser15.GIF
Отбор хочу делать из List, с помощью Linq...
Если можно как-то из List SQL запросами дёргать, тоже можно, не принципиально.
Мучаю C#
У меня есть таблицыid,int |
number_car,string |
color,string |
model,string |
producer,string |
punishment,bool |
id,int |
number_car,string |
sum,int |
description,string |
Решение задачи: «Выборка по комбинации разных параметров»
textual
Листинг программы
internal class Program { public static void Main(string[] args) { List<Car> cars = new List<Car> { new Car(1, "1212", "Black", "911", "Porsche", true), new Car(2, "7777", "White", "SLS", "Mercedes", false), new Car(3, "7989", "Silver", "Panamera", "Porsche", true), new Car(4, "1023", "Red", "911", "Porsche", true), new Car(5, "7337", "Red", "Mustang", "Ford", false) }; // Все красные машины var res = cars.Color("Red"); Console.WriteLine(String.Join(Environment.NewLine, res)); Console.WriteLine(); // Красные со штрафом res = cars.Color("Red").Punishment(true); Console.WriteLine(String.Join(Environment.NewLine, res)); Console.WriteLine(); // Порше со штрафом res = cars.Producer("Porsche").Punishment(true); Console.WriteLine(String.Join(Environment.NewLine, res)); Console.WriteLine(); } } static class FilteringCar { public static IEnumerable<Car> Model(this IEnumerable<Car> cars, string model) { return cars.Where(car => car.Model == model); } public static IEnumerable<Car> Producer(this IEnumerable<Car> cars, string producer) { return cars.Where(car => car.Producer == producer); } public static IEnumerable<Car> Color(this IEnumerable<Car> cars, string color) { return cars.Where(car => car.Color == color); } public static IEnumerable<Car> Punishment(this IEnumerable<Car> cars, bool punishment) { return cars.Where(car => car.Punishment == punishment); } } internal class Car { public int Id { get; set; } public string NumberCar { get; set; } public string Color { get; set; } public string Model { get; set; } public string Producer { get; set; } public bool Punishment { get; set; } public Car(int id, string numberCar, string color, string model, string producer, bool punishment) { Id = id; NumberCar = numberCar; Color = color; Model = model; Producer = producer; Punishment = punishment; } public override string ToString() { return string.Format("NumberCar: {0}, Color: {1}, Model: {2}, Producer: {3}, Punishment: {4}", NumberCar, Color, Model, Producer, Punishment); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д