Linq - 如何在Linq中获取查询结果并将其添加到Array中

时间:2011-02-24 12:51:52

标签: c# linq entity-framework

我使用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;


    }

3 个答案:

答案 0 :(得分:5)

如果您想将ContentId作为字符串,请执行以下操作:

var queryTitle = (from content in context.CmsContents
                 select new
                 {
                     Title = content.Title, // String
                     ContentId = content.ContentId.ToString() // Int
                 }).ToArray();

queryTitle将是一个创建的匿名类型的数组,它有两个属性:

  1. 标题
  2. 内容识别
  3. 两种类型字符串。

    如果您不想拥有匿名类型的数组,但需要一个字符串数组,那么请使用以下代码:

    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扩展方法。