如何从foreach循环中返回逗号分隔值

时间:2016-01-19 11:33:20

标签: asp.net-mvc entity-framework linq foreach linq-to-entities

这就是我想要实现的目标:

var result = (string)null;
foreach (var tagId in MultipleTags)
            { 
              result = string.Join(",", db.Tags.Where(t => t.TagId == tid).Select(e => e.TagName));
            }

此结果变量应以逗号分隔的形式保存所有值,而MultipleTags包含多组ID,因此它将迭代多次。

我该怎么写呢。请建议我。 我怀疑这条线是否写得正确。

db.Tags.Where(t => t.TagId == tid).Select(e => e.TagName)

请建议我。

3 个答案:

答案 0 :(得分:2)

这就是诀窍:

//assuming that MultipleTags is an array of "ids"
var result = db.Tags.Where(t => MultipleTags.Contains(t.TagId)).Select(e => e.TagName).ToList().Aggregate((a, b) => a + "," + b);

答案 1 :(得分:0)

试试这个

var result = db.Tags.Where(t => MultipleTags.Contains(t.TagId)).ToList().ForEach((item) =>
            {
               item.TagName = item.id + "," + item.TagName;
            });

答案 2 :(得分:0)

尝试使用此

   var result = (string)null;
   result=string.Join(",", (from a in db.Tags join m in MultipleTags on a.TagId equals m select a.TagName));