【问题标题】:List<String> to String in C#在 C# 中将 <String> 列表转换为字符串
【发布时间】:2015-07-14 18:23:48
【问题描述】:

我在 Entity Framework 5.0 中制作了一些表,并从中生成了一个 SQL Server 数据库。表格如下:

Title (TitleId, TitleName, TitlePrice, ISBN...)
Author (AuthorId, FirstName, LastName)
Category (CategoryId, CategoryName)

Title 和 Author 以及 Title 和 Category 之间的关系是多对多的。

现在,这是我如何访问分配给每个标题的类别以及作者对标题做出贡献的方法。

//for authors
var queryAuthList = from au in ebs.Authors
                            from t in au.Titles
                            where t.TitleId == TitleId
                            select new
                            {
                                Name = string.Concat(au.FirstName, " ", au.LastName)
                            };

//for categories
var queryCatList = from cat in ebs.Categories
                           from t in cat.Titles
                           where t.TitleId == TitleId
                           select new
                           {
                               cat.CategoryName
                           };

现在,如何在简单的文本标签中显示 queryAuthList 或 queryCatList 的内容?

我希望输出类似于作者的AuthorA, AuthorB, AuthorC 和分配给单个标题的类别的CategoryX, CategoryY, CategoryZ

我尝试声明 List&lt;String&gt; 并将项目添加到 foreach 循环中的列表中,然后使用 String.Join(",",strList) 打印列表。但是输出显示为

{Name = AuthorA}, {Name = AuthorB}, {Name = AuthorC} {CategoryName = CategoryX}, {CategoryName = CategoryY}, {CategoryName = CategoryZ}

【问题讨论】:

    标签: asp.net linq entity


    【解决方案1】:

    您看到的{Name = AuthorA} 是匿名类型的默认ToString()

    你不想这样,所以不要用匿名类型包装它:

    var queryAuthList = from au in ebs.Authors
                                from t in au.Titles
                                where t.TitleId == TitleId
                                //select new
                                //{
                                //    Name = string.Concat(au.FirstName, " ", au.LastName)
                                //};
                                select string.Concat(au.FirstName, " ", au.LastName);
    

    由于queryAuthList 现在是IEnumerable&lt;string&gt;

     string result = String.Join(",", queryAuthList);
    

    【讨论】:

      猜你喜欢
      • 2020-01-13
      • 2011-05-07
      • 2011-06-26
      • 1970-01-01
      • 1970-01-01
      • 2020-02-19
      • 1970-01-01
      • 2015-02-23
      • 1970-01-01
      相关资源
      最近更新 更多