Asp.net mvc 如何从foreach循环中返回逗号分隔的值
这就是我努力实现的目标:Asp.net mvc 如何从foreach循环中返回逗号分隔的值,asp.net-mvc,entity-framework,linq,foreach,linq-to-entities,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)); } 这个结果变量应该以逗号分隔的形式保存所有值,而multipleTag包含一组
var result = (string)null;
foreach (var tagId in MultipleTags)
{
result = string.Join(",", db.Tags.Where(t => t.TagId == tid).Select(e => e.TagName));
}
这个结果变量应该以逗号分隔的形式保存所有值,而multipleTag包含一组ID,因此它将迭代多次
我该怎么写呢。请推荐我。
我怀疑这行写得是否正确
db.Tags.Where(t => t.TagId == tid).Select(e => e.TagName)
请给我提点建议。这就有办法了:
//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);
也试试这个
var result = db.Tags.Where(t => MultipleTags.Contains(t.TagId)).ToList().ForEach((item) =>
{
item.TagName = item.id + "," + item.TagName;
});
试试这个
var result = (string)null;
result=string.Join(",", (from a in db.Tags join m in MultipleTags on a.TagId equals m select a.TagName));
假设
Where(t=>t.TagId==tid)
只返回一个值(即TagId
是unoque键),那么代码将只返回一个值(因此不存在“join”)我知道这就是为什么我问如何将逗号分隔的值返回这个结果变量,因为我必须根据tagId@stephenmueckey选择标记名。你需要一个.Contains()
来获得所有标记
匹配的多个标记
-法比奥·卢兹的答案应该是这样。那么,结果+=
?阅读并显示示例输入和输出,以及您尝试过的.LINQ to Entities无法识别方法'System.String Aggregate[String](System.LINQ.IQueryable1[System.String],System.LINQ.Expressions.Expression
1[System.Func`3[System.String,System.String,System.String]]),并且此方法无法转换为存储表达式。这就是我得到的,还有一件事我要传递给控制器IEnumerable MultipleTags作为参数@Fabio Luz