Я думаю, что ответ Грзенио верен, но я не думаю, что вы понимаете, почему. Чтобы уточнить, возьмите этот простой пример:
string Part1 = "";
string Part2 = "";
for (int i = 0; i < 2; i++)
{
if (i == 0)
{
Part1 = "Set on first iteration";
}
else
{
Part2 = "Set on second iteration";
}
}
Теперь, это точно , что вы сделали. На первой итерации цикла (i==0
) вы только устанавливаете первую переменную Part1
. Таким образом, результат будет:
Part1: "Set on first iteration"
Part2: ""
На второй итерации (i==1
) для Part2
будет установлено значение, а затем будет выведено:
Part1: "Set on first iteration"
Part2: "Set on second iteration"
Итак, взяв ваш пример:
Guid oGuid = new Guid(); // Equals all 0s by default
string objectName = string.Empty;
objectName
устанавливается на первой итерации, но oGuid
не . Поэтому oGuid
остается "всеми нулями" (Guid.Empty).
Итак, это должен быть код, который вы используете:
Guid oGuid = new Guid();
string objectName = string.Empty;
for (int i = 0; i < lst_objectName_Guid.Count; i+=2)
{
// Notice how BOTH variables are assigned
oGuid = new Guid(lst_objectName_Guid[i]);
objectName = lst_objectName_Guid[i + 1];
// So when they're written to the console, they both have values
Console.WriteLine(objectName);
Console.WriteLine(oGuid);
}