【发布时间】:2016-11-24 02:10:04
【问题描述】:
我有几个定义为“静态只读”的 char[] 和 string[] 类型的数组。他们的项目永远不会改变。
'foreach' 和 'generics' 枚举是线程安全的吗?
private static readonly string[] staticReadOnlyArray = new string[] { "someKey0", "someKey1", "someKey2", ... };
public bool SomeThreadSharedCall(string toCheck)
{
// #1
foreach (string s in staticReadOnlyArray)
{
if (s == toCheck)
return true;
}
return false;
// #2
return staticReadOnlyArray.Contains(toCheck);
// or #3
return staticReadOnlyArray.Any(s => string.Compare(toCheck, s, StringComparison.OrdinalIgnoreCase) == 0);
// or #4
staticReadOnlyArray.ForEach(s => someAction(s, toCheck));
}
【问题讨论】:
标签: c# foreach static thread-safety readonly