I m converting a comma separated list of strings into a dictionary using C# in ASP.NET (by omitting any duplicates):
string str = "1,2, 4, 2, 4, item 3,item2, item 3"; //Just a random string for the sake of this example
我不知道哪一种方法更有效率?
1 - 使用审判/渔获区:
Dictionary<string, string> dic = new Dictionary<string, string>();
string[] strs = str.Split( , );
foreach (string s in strs)
{
if (!string.IsNullOrWhiteSpace(s))
{
try
{
string s2 = s.Trim();
dic.Add(s2, s2);
}
catch
{
}
}
}
2- 采用Key()方法:
string[] strs = str.Split( , );
foreach (string s in strs)
{
if (!string.IsNullOrWhiteSpace(s))
{
string s2 = s.Trim();
if (!dic.ContainsKey(s2))
dic.Add(s2, s2);
}
}
<>strong>EDIT. 感谢大家参加!
令人非常感兴趣的发现。 如果你看一下下文中提供的答案,他就建议采用两种办法。 我在此指责他们:
方法1:
var hashSet = new HashSet<string>(from s in str.Split( , )
where !string.IsNullOrWhiteSpace(s)
select s.Trim());
方法2:
var hashSet = new HashSet<string>();
foreach (string s in str.Split( , ))
{
if (!string.IsNullOrWhiteSpace(s))
{
hashSet.Add(s.Trim());
}
}
我向他询问,哪一种方法能够更快地提高业绩,而且令人感兴趣的是,方法2能够更快。 这里使用的是“停止监视”类别,在释放中操作每一种方法,在 lo中建造1 000 000次:
方法1: 1,440 ms average
方法2: 1,124 ms average