Не проходит весь цикл (находит не все заданные значения) - C#
Формулировка задачи:
В общем, было такое у меня задание:Дана очередь данных о работниках фирмы: ФИО и адрес (улица, дом,
квартира). Во второй массив записать только тех из них, которые живут на
улице Красной. Вывести их на экран в алфавитном порядке.
С алфавитным порядком я разберусь потом, проблема в другом.
Почему во вторую таблицу выводит только одного человека,живущего на улице Красной?(хотя должно быть 3).
Вот мой код(если можно это так назвать)
class Person: IComparable<Person>
{
public string ФИО{get;set;}
public string Улица{get;set;}
public string Номер{get;set;}
public Person(string Name, string Street, string Number)
{
this.ФИО = Name;
this.Улица = Street;
this.Номер = Number;
}
public int CompareTo(Person other)
{
int ln = string.Compare(ФИО, other.ФИО, StringComparison.OrdinalIgnoreCase);
int fn = string.Compare(Улица, other.Улица, StringComparison.OrdinalIgnoreCase);
int p = String.Compare(Номер, other.Номер, StringComparison.OrdinalIgnoreCase);
if (ln != 0)
return ln;
if (ln == 0 && fn != 0)
return fn;
if (ln == 0 && fn == 0 && p != 0)
return p;
return 0;
} public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
List<Person> pp = new List<Person>();
pp.Add(new Person("Анацкая Виктория Владимировна", "Калинина", " 4"));
pp.Add(new Person("Чернышева Мария Юрьевна", "Красная", "4"));
pp.Add(new Person("Круглов Александр Александрович", "Красная", "59"));
pp.Add(new Person("Сюткин Владимир Игнатович", "Гидростроителей", " 47"));
pp.Add(new Person("Горобец Михаил Романович", "Красная", "151"));
pp.Add(new Person("Дроздова Анна Михайловна", "Усанова", "45"));
dataGridView1.DataSource = pp;
}
private void button2_Click(object sender, EventArgs e)
{
List<Person> pp = new List<Person>();
pp.Add(new Person("Анацкая Виктория Владимировна", "Калинина", " 4"));
pp.Add(new Person("Чернышева Мария Юрьевна", "Красная", "4"));
pp.Add(new Person("Круглов Александр Александрович", "Красная", "59"));
pp.Add(new Person("Сюткин Владимир Игнатович", "Гидростроителей", " 47"));
pp.Add(new Person("Горобец Михаил Романович", "Красная", "151"));
pp.Add(new Person("Дроздова Анна Михайловна", "Усанова", "45"));
List<Person> filteredPersons = new List<Person>();
foreach (var Person in pp)
if (Person.Улица == "Красная")
{
filteredPersons.Add(Person);
dataGridView2.DataSource = filteredPersons;
}
}
}
}Решение задачи: «Не проходит весь цикл (находит не все заданные значения)»
textual
Листинг программы
var filteredPersons = new List<Person>(); foreach (var Person in pp) if (Person.Улица == "Красная") filteredPersons.Add(Person); dataGridView2.DataSource = filteredPersons;