大多数efficeint方式来查看变量是否等于这些字符串中的任何一个

use*_*480 0 c#

我有一个五个字符串列表.我想看看传入的变量是否等于这五个字符串中的任何一个.有没有比做if/else或case语句更好的方法?

Moo*_*ice 5

假设我理解你的意思,这是一个丑陋但易于理解的方法,我们把字符串放到一个列表中:

var data = new List<string>();
// add some:

data.Add("Stack");
data.Add("Overflow");
data.Add("Is");
data.Add("Awesome");

string test = "Stack";

// does our list contain our test?
bool found = data.Contains(test);
Run Code Online (Sandbox Code Playgroud)

  • 我相信HashSet <string>作为辅助结构更有效,因为Contains()方法可以使用常量时间算法(散列函数)而不是链表扫描. (2认同)