You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何简洁判断变量是否属于List元素(无需长或表达式)

问题描述

我有一个名为Input的变量,它是输入框的值,同时我有一个包含大量字符串的List<string>集合:

List<string> names = new List<string>() { "Franz","Hans","Frank","Holger","Reiner".... };

我需要判断Input的值是否是该List中的某一个元素。常规写法会用很长的逻辑或表达式,例如:

if(Input=="Franz" || Input=="Hans" || Input=="Frank" ... ) // 成百个或条件..
{
  DoSomething();
}

有没有更简便的方法可以判断Input是否属于List元素,无需使用逻辑或表达式?

简便解决方案

直接用List<T>自带的Contains方法就能实现,代码简洁高效:

if(names.Contains(Input))
{
  DoSomething();
}

补充说明

  • 默认情况下Contains会使用区分大小写的字符串匹配逻辑。如果需要忽略大小写,可传入字符串比较参数:
if(names.Contains(Input, StringComparison.OrdinalIgnoreCase))
{
  DoSomething();
}
  • 若列表数据量极大(上万条以上),追求更快的查询效率,可以把List<string>转为HashSet<string>——HashSet的查找时间复杂度为O(1),远优于List的O(n):
HashSet<string> nameSet = new HashSet<string>(names);
if(nameSet.Contains(Input))
{
  DoSomething();
}

同样,HashSet也支持忽略大小写的构造方式:

HashSet<string> nameSet = new HashSet<string>(names, StringComparer.OrdinalIgnoreCase);

内容的提问来源于stack exchange,提问作者Mdarende

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 08:55:19