C# 从NameValueCollection创建列表
我有NameValueCollection类型: 我还创建了NameValueCollection的列表:C# 从NameValueCollection创建列表,c#,C#,我有NameValueCollection类型: 我还创建了NameValueCollection的列表: List<NameValueCollection> argsList = new List<NameValueCollection>(); 我的问题是,从NameValueCollection创建列表是一种好的做法吗 更新 我的目标是使用循环遍历列表。为此,我创建了NameValueCollection列表。我必须创建一个列表来进行Itate吗?或者有其他方法来实
List<NameValueCollection> argsList = new List<NameValueCollection>();
我的问题是,从NameValueCollection创建列表是一种好的做法吗
更新
我的目标是使用循环遍历列表。为此,我创建了NameValueCollection列表。我必须创建一个列表来进行Itate吗?或者有其他方法来实现它吗?你在问是否需要循环,但这取决于你需要做什么。根据更新的语句,您希望将IEnumerable中的点转换为列表 要做到这一点,您可以使用LINQ,而不需要迭代,例如:
argsCollection = points.Select(a => new NameValueCollection()
{
{ "SESSION", ViewState[MgConstants.STR_SESSION].ToString() },
{ "MAPNAME", ViewState[MgConstants.STR_MAPNAME].ToString() },
{ "DIR", "" },
{ "TEXT", a.text }
});
这假定argsCollection是IEnumerable。如果是一个列表,请在.Select语句后添加.ToList。这里不清楚您要查找的内容。当然,你可以创建一个列表——但不清楚你想要实现什么,所以我们无法判断这是否是一件有用的事情。打电话给Concat几乎肯定不是你想要的。。。也许加上?并不是说你已经展示了argsCollection是什么。。。您的列表是argsList。集合和列表在某些方面是相同的。如果您问从NameValueCollection创建列表是否是一种好的做法,我会说否,因为您正在创建列表列表的列表,而在您的问题中,列表没有任何用途。请编辑您的问题,让我更清楚。@Hishambaudarbocus请查看更新是否可以使用LINQ?能否提供示例?
foreach (var point in points)
{
args = new NameValueCollection();
args.Add("SESSION", ViewState[MgConstants.STR_SESSION].ToString());
args.Add("MAPNAME", ViewState[MgConstants.STR_MAPNAME].ToString());
args.Add("DIR", "");
args.Add("TEXT", point.text);
argsCollection.Concat(args);
}
argsCollection = points.Select(a => new NameValueCollection()
{
{ "SESSION", ViewState[MgConstants.STR_SESSION].ToString() },
{ "MAPNAME", ViewState[MgConstants.STR_MAPNAME].ToString() },
{ "DIR", "" },
{ "TEXT", a.text }
});