我需要一个包含用户将添加到的名称的数组或列表。我还需要执行一个检查,如果该名称已经存在,则不允许添加该名称。我知道这应该相当简单,但我找不到任何解决方案。
问问题
164 次
3 回答
2
使用HashSet<string>
; HashSet
是独特元素的集合。如果添加了元素,则它们的.Add
方法返回,否则返回。true
false
如果您不能使用这样的数据结构,那么只需调用.Contains
列表并传入要添加的元素 - 如果它返回true
,则不要添加它。否则,你很高兴可以将其附加到列表中。
于 2013-03-20T21:32:24.997 回答
2
我想你可能只是在追求:
if (list.Contains(name))
或者:
if (array.Contains(name))
就这么简单!两者都List<T>
用它的方法T[]
实现IList<T>
接口。Contains
当然,这是假设您对完全匹配感到满意。如果您需要更复杂的东西,我可能会使用Any
LINQ。例如:
if (array.Any(x => x.StartsWith(name))
于 2013-03-20T21:32:31.433 回答
0
如果列表被实例化,这将起作用:
//List<string> list
list.contains(specifiedstring)
否则,如果它是一个带有字符串字段的复杂对象 - List 那么我会使用:
//For a List<ClassA> list
var exists = list.Any(x => !String.IsNullOrWhitespace(x.StringAField) &&
x.StringAField.Equals(string));
这为您提供了用于检查 if 语句或其他条件的 bool 值。
于 2013-03-20T21:37:07.867 回答