C# 通过逗号分隔将listItems分配给单个字符串

C# 通过逗号分隔将listItems分配给单个字符串,c#,asp.net,join,listitem,C#,Asp.net,Join,Listitem,我有一个列表项,我想分配给一个字符串。所以我试着像下面一样 for (int i = 0; i < LocationDetails.Count; i++) { strMaintZone = String.Join(",", LocationDetails[i].LocationID); } for(int i=0;ix.LocationID)返回LocationID(“1”、“2”)的集合,该集合被传递给String.Join()第二个参数。您不需要在列表中循环。 只需将集合传递

我有一个
列表项
,我想分配给一个字符串。所以我试着像下面一样

for (int i = 0; i < LocationDetails.Count; i++)
{
    strMaintZone = String.Join(",", LocationDetails[i].LocationID);
}
for(int i=0;i

但是它没有被赋值,它取最后一个值。如何将值分配给字符串。

LINQ在这里很有用。您应该将
IEnumerable
传递给
string.Join
方法。
IEnumerable
可以通过LINQ
Select
子句生成

strMaintZone = string.Join(",", LocationDetails.Select(item => item.LocationID));

在您的示例中,问题是您每次都重写
strMaintZone
的值,因此您将只拥有最后一个元素。

LINQ在这里可能会有所帮助。您应该将
IEnumerable
传递给
string.Join
方法。
IEnumerable
可以通过LINQ
Select
子句生成

strMaintZone = string.Join(",", LocationDetails.Select(item => item.LocationID));

在您的示例中,问题是您每次都会重写strMaintZone的值,因此只有最后一个元素。

您不需要在列表中循环。 只需将集合传递给字符串的第二个参数。如下所示进行连接:

  strMaintZone = String.Join(",", LocationDetails.Select(x=>x.LocationID));

LocationDetails.Select(x=>x.LocationID)返回LocationID(“1”、“2”)的集合,该集合被传递给String.Join()第二个参数。

您不需要在列表中循环。 只需将集合传递给字符串的第二个参数。如下所示进行连接:

  strMaintZone = String.Join(",", LocationDetails.Select(x=>x.LocationID));

LocationDetails.Select(x=>x.LocationID)返回传递给String.Join()的LocationID的集合(“1”,“2”。)第二个参数。

@PeterB:
LocationDetails
的值类似于
List lstUMSLocationDetails
,它有2个parameters@PeterB:
LocationDetails
具有类似于
List lstUMSLocationDetails
的值,该值有两个参数可以在没有循环的情况下执行??是的,您不需要执行循环。只要把你的收藏传给String.Joinyes也试过了,效果非常好。。什么是
选择这里的
??任何具体的原因是,看看
系统。Linq
名称空间
Select
是一个投影,您从原始集合中获取一个元素并将其投影为另一个元素。我们可以不使用循环吗?是的,您不需要使用循环。只要把你的收藏传给String.Joinyes也试过了,效果非常好。。什么是
选择这里的
??任何特定的原因是,请看一下
System.Linq
namespace
Select
是一个投影,您从原始集合中获取一个元素,并将其投影为另一个元素。