我有NameValueCollection
类型:
NameValueCollection args = new NameValueCollection();
我还创建了一个NameValueCollection列表:
List<NameValueCollection> argsList = new List<NameValueCollection>();
然后我觉得args变量并添加到argsList:
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);
}
我的问题是从NameValueCollection创建List是一个好习惯吗?
更新
我的目标是使用循环迭代List。为此,我创建了NameValueCollection列表。我是否必须创建一个列表来实现它或者有其他方法来实现它?
答案 0 :(得分:1)
你问是否需要循环,但这取决于你需要做什么。根据您的更新语句,您希望将points
IEnumerable
转换为List<NameValueCollection>
为此,您可以使用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
。如果是List<T>
,请在.ToList()
语句后添加.Select()
。