我有一个外部List BigList,然后在switch语句中有一堆其他List smallList变量。
当我在交换机中遇到这些情况时,我想将它们添加到BigList
但是我也不想添加重复的内容。
我们该怎么做?
private List<string> MyMethod()
{
List<string> BigList = null;
for each( string name in MyListOfStringsThatComesIn)
{
tName = name;
switch(tName)
{
case "dsdds":
// List<string> smallerList;
// add it to BigList
case "fdfdf":
// List<string> smallerList2;
// add it to BigList
case "vbbughb":
// List<string> smallerList3;
// add it to BigList
参考方案
如果不允许重复,我将首先使用HashSet<string>
:
HashSet<string> bigSet = new HashSet<string>();
// add strings ...
如果要将整个List<string>
添加到集合中,可以循环使用bigSet.Add
或HashSet.UnionWith
:
case "dsdds":
bigSet.UnionWith(smallerList);
如果您需要返回列表,可以使用
return new List<string>(bigSet);
将谓词<T>转换为Func <T,bool> - c#我有一个包含成员Predicate的类,希望在Linq表达式中使用该类:using System.Linq; class MyClass { public bool DoAllHaveSomeProperty() { return m_instrumentList.All(m_filterExpression); } private IEnumerable&…
无法从ArrayList <String>转换为List <Comparable> - java当我写下面的代码时,编译器说 无法从ArrayList<String>转换为List<Comparable>private List<Comparable> get(){ return new ArrayList<String>(); } 但是当我用通配符编写返回类型时,代码会编译。private List&l…
jQuery和Gridview更新面板不起作用 - c#我必须按照某些给定条件实现gridview的闪烁:gridview row blinking based on some conditions我能够成功实现它,但是随后我被要求在5秒钟内自动刷新gridview,为此我使用了ajax更新面板和计时器,但随后出现如下新的JavaScript错误:码: <form id="form1" …
Asp.net发送信息表单到页面 - c#我正在尝试使用弹出窗口中的新信息更新旧页面。到目前为止,我尝试过将结果保存在会话中Session["Data"] = DLvrijecampingplaatsen.SelectedItem; 然后当它达到Page_Load时,将其重新加载回旧页面if (Session["Data"] != null) { LBkies…
WPF AvalonDock添加文档 - c#我有一个带有AvalonDock的窗口。在启动时,将打开一个文档,其中充满LocControllers用户控件(LocControllersViewModel)。现在,当双击LocController时,我想让LocController用户控件在新文档中打开。因此,第一个文档始终是概述,充满了LocController用户控件,而其他文档则在双击后添加。我已…