linq返回什么数据类型
本文关键字:数据类型 什么 返回 linq | 更新日期: 2023-09-27 18:29:42
我正在尝试编写一个函数,该函数将从单个表Cars
返回所有可用的汽车供出租。Cars
具有carId
(int)、carManufacturer
(varchar)、carModel
(varchar)和carTaken
(bool)。
但是我在弄清楚函数GetAvailableCars()
应该返回什么数据类型时遇到了问题。
我想以格式化的方式将所有可租赁的汽车(carTaken == false
)放置在web客户端的简单页面上的textArea中。我认为string[]
是个不错的选择。
public string[] GetAllAvailableCars()
{
var result =
from car in carsDB.Cars
where (car.carTaken == false)
select car;
return result;
}
在我看来像IQueryable<Car>
-至少变量result
是这样的。
如果你想返回一个字符串数组,比如:
(from car in carsDB.Cars
where (car.carTaken == false)
select car.carModel).ToArray();
应该工作
编辑:根据作者的要求,选择所有列:
(from car in carsDB.Cars
where (car.carTaken == false)
select String.Format(
"ID: {0}; Manufacturer: {1}; Model: {2}",
car.carId,
car.carManufacturer,
car.carModel
)).ToArray();
我不能根据你的Cars类进行编译,但我认为上面的内容是正确的。如果你有任何错误,请告诉我。
Car
。使用此代码获取所有名称:
public string[] GetAllAvailableCars()
{
return carsDB.Cars
.Where(x => x.carTaken == false) // filter cars
.Select(car => car.model) // select what we need
.ToArray(); // Execute query
}
关于:
public IQueryable<string> GetAllAvailableCars()
{
return carsDB.Cars.Where(c => c.carTaken == false).Select(c => c.model);
}
只是尝试一下,但您不想选择汽车吗。模型,而不是整辆车?
var result = from car in carsDB.Cars
where car.carTaken == false
select car;
结果是汽车的IEnumerable
var result = (from car in carsDB.Cars
where car.carTaken == false
select car).ToArray();
结果是汽车[]
对于这样的特定退货:
var result = from car in carsDB.Cars
where car.carTaken == false
select new {car.a, car.b};
结果是a,b 的IEnumerable
LINQ在Deferred Execution
上工作。
from car in carsDB.Cars
where (car.carTaken == false)
select car;
它只是返回查询。但不是查询的实际结果。
你必须获取结果,通过将其转换为数组或列表等
好的起点在这里
在您的情况下,您选择的是"Car",因此数据类型将是IQueryable。正如注释中所指出的,您可以将鼠标悬停在任何var(而不仅仅是那些涉及LINQ查询的var)上以获取数据类型。