C# 如何使用“添加范围”和“选择条件”组合到通用列表?
如何使用“添加范围”和“选择条件”组合到通用列表?这是一个虚构的例子。我可以添加范围,但不能根据房间类型等条件进行过滤。“Select(mr=>mr.Type==RoomType.卧房)”不起作用。我可以使用什么来代替将列表附加到type=doomy的位置C# 如何使用“添加范围”和“选择条件”组合到通用列表?,c#,.net,entity-framework,linq,C#,.net,Entity Framework,Linq,如何使用“添加范围”和“选择条件”组合到通用列表?这是一个虚构的例子。我可以添加范围,但不能根据房间类型等条件进行过滤。“Select(mr=>mr.Type==RoomType.卧房)”不起作用。我可以使用什么来代替将列表附加到type=doomy的位置 public enum RoomType { Bathroom = 1, BedRoom = 2, Kitchen = 3, RecRoom = 4 } public class RoomsModel {
public enum RoomType
{
Bathroom = 1,
BedRoom = 2,
Kitchen = 3,
RecRoom = 4
}
public class RoomsModel
{
public RoomType Type { get; set; }
public int Size { get; set; }
}
public List<RoomsModel> GetRooms(params)
{
var result = new List<RoomsModel>();
result = _service.GetRooms(house1);
var moreRooms _service.GetRooms(house2);
result.AddRange((from mr in moreRooms
select new RoomsModel
{
Type = mr.Type,
Size = mr.Size
}
).Select(mr => mr.Type == RoomType.BedRoom).ToList());
return result;
}
公共枚举房间类型
{
浴室=1,
卧室=2间,
厨房=3,
休息室=4
}
公共教室模型
{
公共RoomType类型{get;set;}
公共整数大小{get;set;}
}
公共列表GetRooms(参数)
{
var result=新列表();
结果=_service.GetRooms(house1);
var moreRooms _service.GetRooms(第2栋);
结果.AddRange((来自moreRooms中的mr
选择新RoomsModel
{
类型=类型先生,
大小=先生大小
}
).Select(mr=>mr.Type==RoomType.卧房).ToList());
返回结果;
}
您需要使用Where
而不是选择:
result.AddRange(
from mr in moreRooms
where mr.Type == RoomType.BedRoom
select new RoomsModel
{
Type = mr.Type,
Size = mr.Size
});
result.AddRange((来自moreRooms中的mr)
选择新RoomsModel
{
类型=类型先生,
大小=先生大小
}
).Where(mr=>mr.Type==RoomType.卧房).ToList());
您需要使用Where
而不是选择:
result.AddRange(
from mr in moreRooms
where mr.Type == RoomType.BedRoom
select new RoomsModel
{
Type = mr.Type,
Size = mr.Size
});
result.AddRange((来自moreRooms中的mr)
选择新RoomsModel
{
类型=类型先生,
大小=先生大小
}
).Where(mr=>mr.Type==RoomType.卧房).ToList());
使用Where
代替选择:
result.AddRange(
from mr in moreRooms
where mr.Type == RoomType.BedRoom
select new RoomsModel
{
Type = mr.Type,
Size = mr.Size
});
其中
过滤项目<代码>选择项目,即将序列中的每个项目转换为其他项目。使用Where
而不是选择项目:
result.AddRange(
from mr in moreRooms
where mr.Type == RoomType.BedRoom
select new RoomsModel
{
Type = mr.Type,
Size = mr.Size
});
其中
过滤项目<代码>选择项目,即将序列中的每个项目转换为其他项目。另一种方式:
result.AddRange(moreRooms.Where(mr => mr.Type == RoomType.BedRoom)
.Select(mr => new RoomsModel {
Type = mr.Type,
Size = mr.Size
}));
还有一种方法:
result.AddRange(moreRooms.Where(mr => mr.Type == RoomType.BedRoom)
.Select(mr => new RoomsModel {
Type = mr.Type,
Size = mr.Size
}));
我以一点点的优势击败了你,但是使用100%LINQ完成这项工作+1。我真的不确定LINQ是否有where
clausesI在这方面比你略胜一筹,但是+1是因为在工作中使用了100%的LINQ。不确定LINQ是否有where
子句