Не проходит весь цикл (находит не все заданные значения) - 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д