我使用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;
}
答案 0 :(得分:5)
如果您想将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();
答案 1 :(得分:0)
如果您希望将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();
答案 2 :(得分:0)
var strings = from content in context.CmsContents
select string.Format ("{0} {1}",
content.ContentId,
content.Title
);
那应该对你有所帮助
请注意,一个常见的误解是你需要一个数组来处理查询结果 - 事实上,你没有,结果已经是IEnumerable
。如果您确定需要一个数组,只需在括号中包装查询并在结果上调用ToArray
扩展方法。