首先我们创建基准测试 ,并使用BenchMark来测试List<T>集合实例化不同写法的性能
C#
[MemoryDiagnoser]
public class Bencj
{
[Benchmark(Baseline = true)]
public List<string> TestNormal()
{
return new List<string>() { "apple", "bob", "banana" };
}
[Benchmark]
public List<string> TestCol()
{
return ["apple", "bob", "banana"];
}
[Benchmark]
public List<string> TestCol2()
{
return new List<string>(3) { "apple", "bob", "banana" };
}
[Benchmark]
public List<string> TestCol3()
{
return new List<string>(test3());
}
[Benchmark]
public List<string> TestCol4()
{
List<string> list = [];
list.Add("apple");
list.Add("bob");
list.Add("banana");
return list;
}
[Benchmark]
public List<string> TestCol5()
{
List<string> list = new(3);
list.Add("apple");
list.Add("bob");
list.Add("banana");
return list;
}
[Benchmark]
public List<string> TestCol6()
{
return new List<string>(test);
}
private static IEnumerable<string> test3()
{
yield return "apple";
yield return "bob";
yield return "banana";
}
private static readonly string[] test = new string[] { "apple", "bob", "banana" };
}
测试结果:
![](https://ichistudio.cn/wp-content/uploads/2024/04/图片-18-1024x191.png)