我试图使用LINQ to Entities从单行中选择几列,然后将每列拆分为它自己的数组点。
我有LINQ查询获得我想要的结果,但我无法弄清楚如何将其拆分为数组。我认为使用.ToArray()
会起作用,但它并没有拆分它们。
var LinkData = db.Sections
.Where(s => s.ID == SectionID)
.Select(s => new
{
s.Type,
s.Route
}).ToArray();
如何从查询中分割结果,以便我有一个包含两个元素的数组:一个用于Type,一个用于Route?
答案 0 :(得分:1)
您的Select
- 语句已经创建了一个存储在$interval
实例中的两个值项的列表。因此,无需为此创建新的二维数组。您的linkdata
已经包含了您想要的数据,但如果您在(Type, Route)
的一个特定组合之后,只需分别拨打linkedData[myIndex].Route
或linkedData[myIndex].Type
。
编辑:如果你真的想要数组,那么以下内容应该有效:
var arr = linkedData.Select(x => new[] { x.Rote, x.Type }).ToArray();
这将为您提供一个数组数组,其中每个元素本身都包含两个元素的数组。
答案 1 :(得分:1)
var section = db.Sections
.Where(s => s.ID == SectionID)
.Select(s => new
{
s.Type,
s.Route
})
.SingleOrDefault();
var LinkData = new [] {section.Type, section.Route};
答案 2 :(得分:0)
使用列表<>代替
多数民众赞成我会做的事。
创建一个公共类的链接数据,所以:
public class LinkData
{
public string type {get; set;}
public string Route {get;set;}
}
然后在你的代码中 创建链接数据列表:
List<LinkData> LinkDataList = new List<LinkData>();
然后创建一个对象
LinkData obj = new LinkData
add stuff to the object
obj.type = db.Section.Where(s => s.ID==SectionID).Select s=> s.Type new s.Type).SingleOrDefault();
obj.Route = db.Section.Where(s => s.ID==SectionID).Select s=> s.Route new s.Type).SingleOrDefault();;
LinkDataList.Add(obj)
这应该可以清楚地表明什么:)