[英]Linq - How to take the result for a query in Linq and add it to an Array
我使用c#,linq和EF4,我想向您寻求帮助。
我的问题:我有一个linq查询,但是我需要将此查询的结果插入数组字符串中。 添加的值应该是Title和ContentId(来自EF的ContentId是一个INT,但我需要它作为字符串)
请让我知道,在此先感谢您!PS:请发布完整代码:-)
public static string[] GetCompletionList(string prefixText, string count)
{
using (CmsConnectionStringEntityDataModel context = new CmsConnectionStringEntityDataModel())
{
var queryTitle = (from content in context.CmsContents
select new
{
Title = content.Title, // String
ContentId = content.ContentId.ToString() // Int
}).ToArray();
return queryTitle;
}
如果要使用ContentId作为字符串,请执行以下操作:
var queryTitle = (from content in context.CmsContents
select new
{
Title = content.Title, // String
ContentId = content.ContentId.ToString() // Int
}).ToArray();
queryTitle将是创建的匿名类型的数组,该数组具有两个属性:
两者均为字符串类型。
如果您不想有一个匿名类型的数组,而是一个字符串数组,请使用以下代码:
var queryTitles = (from content in context.CmsContents
select "Title: " + content.Title + ", ContentId: " + content.ContentId.ToString()).ToArray();
如果您希望在一大串字符串中包含contentID和Title(从您的问题来看,听起来像是这样,但不是很清楚),您可能想尝试一下
var resultArray = titlesAsArray
.Select(a => new[]
{
a.ContentId.ToString(), a.Title
})
.SelectMany(x => x).ToArray();
或修改您的原始查询
var resultArray = context.CmsContents.Select(content => new[]
{
content.ContentId.ToString(), content.Title
}).SelectMany(content => content).ToArray();
var strings = from content in context.CmsContents
select string.Format ("{0} {1}",
content.ContentId,
content.Title
);
那应该对你有帮助。
请注意,这是一个常见的误解,您需要一个数组来处理查询结果-实际上,您不需要,结果已经是IEnumerable
。 如果确定需要一个数组,只需将查询括在括号中并在结果上调用ToArray
扩展方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.