C# 从NameValueCollection创建列表

C# 从NameValueCollection创建列表,c#,C#,我有NameValueCollection类型: 我还创建了NameValueCollection的列表: List<NameValueCollection> argsList = new List<NameValueCollection>(); 我的问题是,从NameValueCollection创建列表是一种好的做法吗 更新 我的目标是使用循环遍历列表。为此,我创建了NameValueCollection列表。我必须创建一个列表来进行Itate吗?或者有其他方法来实

我有NameValueCollection类型:

我还创建了NameValueCollection的列表:

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 }
});