C# 从列表中加入ID 目标
将列表中所有元素的每个id连接到一个串联字符串中,如C# 从列表中加入ID 目标,c#,C#,将列表中所有元素的每个id连接到一个串联字符串中,如1、2、3 问题 在我的应用程序中,有一个方法的唯一参数是string类型,我想向它传递一个类似1,2,3,4,5的值 这些值(1,2,3,4,5)将通过列表发送给我-我需要从列表中获取每个元素的id 如何获取这些id并将它们连接成单个字符串 我已经试过了 我已经尝试了以下代码(): List sessionProducts=sessionStore.Get(“ProductsSummary”); //ProductsSummary是会话的索引
1、2、3
问题
在我的应用程序中,有一个方法的唯一参数是string
类型,我想向它传递一个类似1,2,3,4,5
的值
这些值(1,2,3,4,5
)将通过列表发送给我-我需要从列表中获取每个元素的id
如何获取这些id
并将它们连接成单个字符串
我已经试过了
我已经尝试了以下代码():
List sessionProducts=sessionStore.Get(“ProductsSummary”);
//ProductsSummary是会话的索引。
string list=string.Join(“,”,sessionProducts);
返回内容(列表);
但是没有成功。当我访问我的视图时,返回值为:
MyApp.Models.Data.Products
技术细节
我的.Net版本是4.5
复制的?
我想这不是因为我在谷歌上搜索,而是没有成功。此外,我的发现对我也没有帮助。你可以使用:
string list = string.Join(", ", sessionProducts.Select(p => p.id));
这将使用以及可枚举的。选择
将产品集合转换为可枚举的IEnumerable。您可以使用:
string list = string.Join(", ", sessionProducts.Select(p => p.id));
这将使用以及可枚举。选择可将产品集合转换为IEnumerable在
字符串中使用Select语句。加入
:
List<Products> sessionProducts = sessionStore.Get("ProductsSummary");
string list = string.Join(", ", sessionProducts.Select(p => p.Id));
List sessionProducts=sessionStore.Get(“ProductsSummary”);
string list=string.Join(“,”,sessionProducts.Select(p=>p.Id));
在字符串中使用select语句。Join
:
List<Products> sessionProducts = sessionStore.Get("ProductsSummary");
string list = string.Join(", ", sessionProducts.Select(p => p.Id));
List sessionProducts=sessionStore.Get(“ProductsSummary”);
string list=string.Join(“,”,sessionProducts.Select(p=>p.Id));
您看到的输出是在产品
对象上调用ToString
的结果,它似乎没有被覆盖
您需要覆盖产品的ToString
,或者选择id
属性:
string list = string.Join(", ", sessionProducts.Select(product => product.id));
您看到的输出是对Products
对象调用ToString
的结果,它似乎没有被覆盖
您需要覆盖产品的ToString
,或者选择id
属性:
string list = string.Join(", ", sessionProducts.Select(product => product.id));
您需要将ID列表传递给string.Join
,如下所示:
string joinedIds = string.Join(", ", sessionProducts.Select(p => p.Id))
否则,将调用ToString()
,这就是您看到特定字符串的原因。您需要将ID列表传递给字符串。Join
,如下所示:
string joinedIds = string.Join(", ", sessionProducts.Select(p => p.Id))
否则,将调用ToString()
,这就是您看到特定字符串的原因。因为其他人都给了您。选择()
答案这里是另一个选项。重写产品
上的ToString函数,以便join尝试加入它们时,它将使用id而不是类名
public class Products
{
public int Id {get; set;}
public string override ToString()
{
return this.Id.ToString();
}
}
因为其他人都给了你。选择()
答案这里是另一个选项。重写产品
上的ToString函数,以便join尝试加入它们时,它将使用id而不是类名
public class Products
{
public int Id {get; set;}
public string override ToString()
{
return this.Id.ToString();
}
}
你明白了吗
MyApp.Models.Data.Products
因为您正在传递它List
和字符串。Join正在对您的对象调用.ToString()
。而您需要像这样传递ID
string list = string.Join(", ", sessionProducts.Select(x=>x.id));
你明白了吗
MyApp.Models.Data.Products
因为您正在传递它List
和字符串。Join正在对您的对象调用.ToString()
。而您需要像这样传递ID
string list = string.Join(", ", sessionProducts.Select(x=>x.id));
sessionProducts是不是字符串的产品列表。星期五快乐@sza:这有什么关系?sessionProducts是一个产品列表,而不是字符串。星期五快乐@sza:这有什么关系?缺少一个结束语()
;)@李德波西:接得好。谢谢缺少结束语()
;)@李德波西:接得好。谢谢你把它分配给什么?字符串,列表。。??你只是在这里调用一个方法看看Reed Copsey的回答他把它分配给一个string@DJKRAZE他的代码只是替换原始问题中的连接的一个替代品。您将它分配给?字符串,列表。。??你只是在这里调用一个方法看看Reed Copsey的回答他把它分配给一个string@DJKRAZE他的代码将只是原始问题中连接的替代品。我认为值得指出的是,他的问题的原因是他试图连接产品
类型的实例,而不是串。select是必需的,因为它执行投影,对于每个产品,它返回products id属性,该属性是一个字符串。我认为值得指出的是,他出现问题的原因是他试图连接product
类型的实例,而不是字符串。select是必需的,因为它执行投影,对于每个产品,它返回products id属性,该属性是一个字符串。