C# 如何在LINQ中将列表中的项目连接到逗号分隔的字符串中
我有一个子查询,它是一个较大查询的一部分。我希望左侧名为ErrorType的列由右侧列表返回的逗号分隔的值集填充。我怎么做?ErrorTypes是一个主键为ErrorTypeID,值为ErrorTypeName的主机。ProductionErrors是其键为Production ID(由外部查询提供)且其匹配键为ErrorType的事务表C# 如何在LINQ中将列表中的项目连接到逗号分隔的字符串中,c#,sql,linq,C#,Sql,Linq,我有一个子查询,它是一个较大查询的一部分。我希望左侧名为ErrorType的列由右侧列表返回的逗号分隔的值集填充。我怎么做?ErrorTypes是一个主键为ErrorTypeID,值为ErrorTypeName的主机。ProductionErrors是其键为Production ID(由外部查询提供)且其匹配键为ErrorType的事务表 ErrorType = (from errorType in db.ErrorTypes join prdErrType in
ErrorType = (from errorType in db.ErrorTypes
join prdErrType in db.ProductionErrors
on errorType.ErrorTypeID equals prdErrType.ErrorTypeID
where prdErrType.ProductionID==prd.ProductionID
select errorType.ErrorTypeName).ToList();
在这种情况下,最好使用:
ErrorType = string.Join(",", (from...)); // you can omit .ToList() perhaps
在这种情况下,最好使用:
ErrorType = string.Join(",", (from...)); // you can omit .ToList() perhaps
在这种情况下,最好使用:
ErrorType = string.Join(",", (from...)); // you can omit .ToList() perhaps
在这种情况下,最好使用:
ErrorType = string.Join(",", (from...)); // you can omit .ToList() perhaps
您应该查询如下内容:
ErrorType = (from errorType in db.ErrorTypes join prdErrType in db.ProductionErrors on errorType.ErrorTypeID equals prdErrType.ErrorTypeID
where prdErrType.ProductionID==prd.ProductionID
select new
{
ErrorType=errorType.ErrorTypeName.tostring()+','
}).ToList()
这是因为有时LINQ to SQL不支持字符串函数。您应该查询如下内容:
ErrorType = (from errorType in db.ErrorTypes join prdErrType in db.ProductionErrors on errorType.ErrorTypeID equals prdErrType.ErrorTypeID
where prdErrType.ProductionID==prd.ProductionID
select new
{
ErrorType=errorType.ErrorTypeName.tostring()+','
}).ToList()
这是因为有时LINQ to SQL不支持字符串函数。您应该查询如下内容:
ErrorType = (from errorType in db.ErrorTypes join prdErrType in db.ProductionErrors on errorType.ErrorTypeID equals prdErrType.ErrorTypeID
where prdErrType.ProductionID==prd.ProductionID
select new
{
ErrorType=errorType.ErrorTypeName.tostring()+','
}).ToList()
这是因为有时LINQ to SQL不支持字符串函数。您应该查询如下内容:
ErrorType = (from errorType in db.ErrorTypes join prdErrType in db.ProductionErrors on errorType.ErrorTypeID equals prdErrType.ErrorTypeID
where prdErrType.ProductionID==prd.ProductionID
select new
{
ErrorType=errorType.ErrorTypeName.tostring()+','
}).ToList()
这是因为有时LINQ to SQL不支持字符串函数。
string.Join
是我这样做的方式,正如前面给出的答案一样。但与大多数事情一样,有多种方法可以做到这一点。另一种方法是使用IEnumerable.Aggregate
方法:
var query = (from errorType in db.ErrorTypes
join prdErrType in db.ProductionErrors
on errorType.ErrorTypeID equals prdErrType.ErrorTypeID
where prdErrType.ProductionID==prd.ProductionID
select errorType.ErrorTypeName);
string errorType = query.Aggregate((result,next) => result + "," + next);
string.Join
是我这样做的方式,正如已经给出的答案一样。但与大多数事情一样,有多种方法可以做到这一点。另一种方法是使用IEnumerable.Aggregate
方法:
var query = (from errorType in db.ErrorTypes
join prdErrType in db.ProductionErrors
on errorType.ErrorTypeID equals prdErrType.ErrorTypeID
where prdErrType.ProductionID==prd.ProductionID
select errorType.ErrorTypeName);
string errorType = query.Aggregate((result,next) => result + "," + next);
string.Join
是我这样做的方式,正如已经给出的答案一样。但与大多数事情一样,有多种方法可以做到这一点。另一种方法是使用IEnumerable.Aggregate
方法:
var query = (from errorType in db.ErrorTypes
join prdErrType in db.ProductionErrors
on errorType.ErrorTypeID equals prdErrType.ErrorTypeID
where prdErrType.ProductionID==prd.ProductionID
select errorType.ErrorTypeName);
string errorType = query.Aggregate((result,next) => result + "," + next);
string.Join
是我这样做的方式,正如已经给出的答案一样。但与大多数事情一样,有多种方法可以做到这一点。另一种方法是使用IEnumerable.Aggregate
方法:
var query = (from errorType in db.ErrorTypes
join prdErrType in db.ProductionErrors
on errorType.ErrorTypeID equals prdErrType.ErrorTypeID
where prdErrType.ProductionID==prd.ProductionID
select errorType.ErrorTypeName);
string errorType = query.Aggregate((result,next) => result + "," + next);
谢谢你的帮助,虽然这不是礼节的一部分。你的众多答案中有一个对我很有帮助,问题是这只是LINQ查询中众多任务中的一个。因此,鉴于我有限的LINQ,我无法突破上述格式。所以其中一个答案就解决了。谢谢你的帮助,尽管这不是礼节的一部分。你的众多答案中有一个对我很有帮助,问题是这只是LINQ查询中众多任务中的一个。因此,鉴于我有限的LINQ,我无法突破上述格式。所以其中一个答案就解决了。谢谢你的帮助,尽管这不是礼节的一部分。你的众多答案中有一个对我很有帮助,问题是这只是LINQ查询中众多任务中的一个。因此,鉴于我有限的LINQ,我无法突破上述格式。所以其中一个答案就解决了。谢谢你的帮助,尽管这不是礼节的一部分。你的众多答案中有一个对我很有帮助,问题是这只是LINQ查询中众多任务中的一个。因此,鉴于我有限的LINQ,我无法突破上述格式。其中一个答案是正确的。我应该提到ErrorType是一个字符串。你的答案可能有用,但我使用了字符串作为输出变量。我应该提到ErrorType是一个字符串。你的答案可能有用,但我使用了字符串作为输出变量。我应该提到ErrorType是一个字符串。你的答案可能有用,但我使用了字符串作为输出变量。我应该提到ErrorType是一个字符串。你的答案应该是有效的,但我使用了字符串作为输出变量。