C# 有没有更有效的方法循环浏览多个列表
我有4个字符串列表-它们的长度都相同C# 有没有更有效的方法循环浏览多个列表,c#,.net,C#,.net,我有4个字符串列表-它们的长度都相同 var nameList; var dateList; var versionList; var downloadList; 我目前正在逐个遍历每个列表,然后将每个列表的内容添加到一个并发队列中 var concurrentNameQueue= new ConcurrentQueue<string>(); var concurrentDateQueue= new ConcurrentQueue<string>(); var conc
var nameList;
var dateList;
var versionList;
var downloadList;
我目前正在逐个遍历每个列表,然后将每个列表的内容添加到一个并发队列中
var concurrentNameQueue= new ConcurrentQueue<string>();
var concurrentDateQueue= new ConcurrentQueue<string>();
var concurrentVersionQueue= new ConcurrentQueue<string>();
var concurrentDownloadQueue= new ConcurrentQueue<string>();
foreach (var name in nameList)
{
concurrentNameQueue.Enqeue(name);
}
foreach (var date in dateList)
{
concurrentDateQueue.Enqeue(date);
}
foreach (var version in versionList)
{
concurrentVersionQueue.Enqeue(version);
}
foreach (var download in downloadList)
{
concurrentDownloadQueue.Enqeue(download);
}
var concurrentNameQueue=new ConcurrentQueue();
var concurrentDateQueue=new ConcurrentQueue();
var concurrentVersionQueue=新ConcurrentQueue();
var concurrentDownloadQueue=new ConcurrentQueue();
foreach(名称列表中的变量名称)
{
concurrentNameQueue.enque(名称);
}
foreach(日期列表中的var日期)
{
concurrentDateQueue.enque(日期);
}
foreach(版本列表中的var版本)
{
concurrentVersionQueue.enque(版本);
}
foreach(下载列表中的var下载)
{
concurrentDownloadQueue.enque(下载);
}
这个过程似乎非常重复,让我想知道是否有一种更有效的方法来循环浏览所有这些列表
有没有更有效的方法 使用具有多个属性的数据结构,而不是制作多个列表 这就是OOP的优点。而是创建一个列表
public class DownloadItem
{
public string Name { get; set; }
public string Date { get; set; }
public string Version { get; set; }
public string Download { get; set; }
}
使用具有多个属性的数据结构,而不是制作多个列表 这就是OOP的优点。而是创建一个列表
public class DownloadItem
{
public string Name { get; set; }
public string Date { get; set; }
public string Version { get; set; }
public string Download { get; set; }
}
public static void Enqueue<T>(this ConcurrentQueue<T> queue, IEnumerable<T> items)
{
foreach (var item in items)
queue.Enqueue(item);
}
concurrentNameQueue.Enqueue(nameList);
concurrentDateQueue.Enqueue(dateList);
concurrentVersionQueue.Enqueue(versionList);
concurrentDownloadQueue.Enqueue(downloadList);
公共静态void排队(此ConcurrentQueue队列,IEnumerable项)
{
foreach(项目中的var项目)
排队。排队(项目);
}
concurrentNameQueue.Enqueue(名称列表);
concurrentDateQueue.Enqueue(日期列表);
concurrentVersionQueue.Enqueue(版本列表);
concurrentDownloadQueue.Enqueue(下载列表);
IEnumerable
作为输入的:
var concurrentNameQueue = new ConcurrentQueue<string>(nameList);
var concurrentDateQueue = new ConcurrentQueue<string>(dateList);
var concurrentVersionQueue = new ConcurrentQueue<string>(versionList);
var concurrentDownloadQueue = new ConcurrentQueue<string>(downloadList);
var concurrentNameQueue=新的ConcurrentQueue(名称列表);
var concurrentDateQueue=新的ConcurrentQueue(日期列表);
var concurrentVersionQueue=新的ConcurrentQueue(versionList);
var concurrentDownloadQueue=新的ConcurrentQueue(下载列表);
但正如我在评论中提到的,您似乎应该创建一个包含4个属性的类,分别为name、date、version和download创建一个属性。然后你有一个类的列表,而不是保持4个列表同步
public static void Enqueue<T>(this ConcurrentQueue<T> queue, IEnumerable<T> items)
{
foreach (var item in items)
queue.Enqueue(item);
}
concurrentNameQueue.Enqueue(nameList);
concurrentDateQueue.Enqueue(dateList);
concurrentVersionQueue.Enqueue(versionList);
concurrentDownloadQueue.Enqueue(downloadList);
公共静态void排队(此ConcurrentQueue队列,IEnumerable项)
{
foreach(项目中的var项目)
排队。排队(项目);
}
concurrentNameQueue.Enqueue(名称列表);
concurrentDateQueue.Enqueue(日期列表);
concurrentVersionQueue.Enqueue(版本列表);
concurrentDownloadQueue.Enqueue(下载列表);
IEnumerable
作为输入的:
var concurrentNameQueue = new ConcurrentQueue<string>(nameList);
var concurrentDateQueue = new ConcurrentQueue<string>(dateList);
var concurrentVersionQueue = new ConcurrentQueue<string>(versionList);
var concurrentDownloadQueue = new ConcurrentQueue<string>(downloadList);
var concurrentNameQueue=新的ConcurrentQueue(名称列表);
var concurrentDateQueue=新的ConcurrentQueue(日期列表);
var concurrentVersionQueue=新的ConcurrentQueue(versionList);
var concurrentDownloadQueue=新的ConcurrentQueue(下载列表);
但正如我在评论中提到的,您似乎应该创建一个包含4个属性的类,分别为name、date、version和download创建一个属性。然后,您有一个类的列表,而不是保持4个列表同步。看起来,代替4个列表,您可能需要考虑一个具有4个属性的类,然后一个类的列表也在哪里初始化队列?我更新了我的帖子,包括队列的初始化,似乎不是4个列表,你可能想考虑一个有4个属性的类,还有一个类的列表,你在哪里初始化队列?我更新了我的帖子,包括了queues@LostBoy-那肯定是一个更好的选择design@LostBoy-这肯定是一个更好的设计