Files
codeql/csharp/ql/test/query-tests/Performance/UseTryGetValue/UseTryGetValue.cs
2018-08-02 17:53:23 +01:00

46 lines
1.2 KiB
C#

using System;
using System.Collections.Generic;
class Test
{
static void Main(string[] args)
{
var dict = new Dictionary<int, int>();
int x;
// GOOD: Assignment
if (!dict.ContainsKey(1)) dict[1] = 2;
if (dict.ContainsKey(1)) dict[1] = 2;
// GOOD: TryGetValue
dict.TryGetValue(2, out x);
// These are BAD
if (dict.ContainsKey(1)) x = dict[1];
if (dict.ContainsKey(1) && dict[1] == 2) ;
if (!dict.ContainsKey(1) && dict[1] == 2) ;
if (!dict.ContainsKey(1) || dict[1] == 2) ;
if (dict.ContainsKey(1) || dict[1] == 2) ;
if (dict.ContainsKey(1))
x = dict[1];
else
x = dict[1];
if (!dict.ContainsKey(1))
x = dict[1];
else
x = dict[1];
x = dict.ContainsKey(1) ? dict[1] : dict[1];
x = !dict.ContainsKey(1) ? dict[1] : dict[1];
x = true && !dict.ContainsKey(1) ? dict[1] : dict[1];
// GOOD: Different index
if (dict.ContainsKey(0)) x = dict[1];
// GOOD: Different collection
var dict2 = dict;
if (dict2.ContainsKey(0)) x = dict[0];
}
}