С примерами данных, которые вы дали, и кодом, который вы дали, все работает нормально, используя Neighborhoods
класс, подобный этому:
public class Neighborhoods
{
public string Name { get; set; }
public string Neighbourhood_Input1 { get; set; }
public string University_Input1 { get; set; }
public string Downtown_Input1 { get; set; }
public bool Neighbourhood_Enabled1 { get; set; }
public bool University_Enabled1 { get; set; }
public bool Downtown_Enabled1 { get; set; }
}
Мой тест для запуска этого кода:
static void Main()
{
var families = Families();
foreach (var family in x.Values)
{
Console.WriteLine(y.Name);
}
}
Это печатает "qwe" и "123" - показывая, что есть два различных вовлеченных объекта.
Однако мы еще не видели настоящий класс Neighborhoods
. Я не думаю, что он использует статические поля (но все же свойства экземпляра), не так ли? Это, безусловно, объясняет поведение, которое вы видите.
РЕДАКТИРОВАТЬ: Да, теперь вы показали нам код Соседства, это имеет смысл. Эти поля должны быть релевантными для каждого экземпляра , а не только для самого типа - поэтому они не должны быть статичными.
Чтобы показать, что это не имеет ничего общего с анализатором, попробуйте следующее:
Neighborhoods first = new Neighborhoods();
Neighborhoods second = new Neighborhoods();
first.Name = "First";
Console.WriteLine(second.Name);
Вы увидите, что он печатает «Первый» - что явно не то, что вы хотите!
К сожалению, у меня нет хорошей страницы о том, что означает "статический", но я предлагаю вам посмотреть его в любых книгах по C #, которые у вас есть.