У меня есть метод, который возвращает объект типа CarsCache
. Я хочу установить некоторые свойства в моем объекте Vehicle
, у которого есть объект Car
от CarChache
объект. Я могу сделать это легко, как показано ниже:Как выбрать конкретные свойства через LINQ?
var carCahe = getByCarId(1);
Vehicle v = new Vehicle();
v.Car.value1 = carCahe.value1;
Но я хочу сделать это через LINQ. Я сделал что-то подобное с помощью LINQ, но этот метод возвращает коллекцию, а затем я использую где и выбираю. У меня есть объект Vehicle
, и в автомобиле есть объект Car
. Я делаю это вот так:
entity = new Vehicle
{
IsActive = true,
Car = DataCache.GetInstance()
.GetAllCars()
.ToList()
.Where(o => o.carId== carId)
.Select(o => new Car{Value1= o.value1, value2= o.value2})
.Single()
};
Это также работает сейчас. Я хочу сделать это с помощью метода, который возвращает только один объект. Не сбор, но я не могу этого сделать. Я делаю это:
entity =new Vehicle
{
IsActive = true,
Car= DataCache.GetInstance() // it retruns carCahe object.
.GeTCarById(1)
//Here i want to set value1 property and value2 property
};
Как это сделать?
IMO, когда возвращаемое значение «GeTCarById» - это автомобиль с новыми значениями, ваш подход правильный;). –
Если честно: если ваш первый подход работает, почему вы хотите сделать его более сложным и менее читаемым? Первый подход ясен, просто увидев его один раз для меня. Подход LINQ гораздо более подвержен ошибкам, менее отладочный, менее читабельный и фактически не нужен, если другой работает. – ckruczek
@ckruczek согласился. LINQ медленный, но я просто хочу сделать это для своих знаний. – Umer