powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как сравнить два множества в C#?
8 сообщений из 8, страница 1 из 1
Как сравнить два множества в C#?
    #38491959
Allllllllllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как сравнить два множества в C#?

Код: c#
1.
2.
3.
            //Как сравнить два множества как переменные ???
            if (ss = ss1) Console.WriteLine("Множество ss равно множеству ss1 ");
            else Console.WriteLine("Множество ss не равно множеству ss1");



Весь код:


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
using System;
using System.Collections.Generic;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            // Создадим два множества
            SortedSet<char> ss = new SortedSet<char>();
            SortedSet<char> ss1 = new SortedSet<char>();

            ss.Add('A');
            ss.Add('B');
            ss.Add('C');
            ss.Add('Z');
            ShowColl(ss, "Первая коллекция: ");

            ss1.Add('X');
            ss1.Add('Y');
            ss1.Add('Z');
            ShowColl(ss1, "Вторая коллекция");

            ss.UnionWith(ss1);
            ShowColl(ss, "Объединение множеств: ");

            ss.ExceptWith(ss1);
            ShowColl(ss, "Вычитание множеств");

 
            //Как сравнить два множества???
            if (ss = ss1) Console.WriteLine("Множество ss равно множеству ss1 ");
            else Console.WriteLine("Множество ss не равно множеству ss1");

            // public IComparer<T> Comparer { get; }
            // public T Max { get; }
            // public T Min { get; }
       }

        static void ShowColl(SortedSet<char> ss, string s)
        {
            Console.WriteLine(s);
            foreach (char ch in ss)
                Console.Write(ch + " ");
            Console.WriteLine("\n");
        }
    }
}
...
Рейтинг: 0 / 0
Как сравнить два множества в C#?
    #38492018
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
bool CmpSortedSet(SortedSet<char> a, SortedSet<char> b)
{
    if (a == b) return true;
    if ((a == null) || (b == null) || (a.Count != b.Count)) return false;
    SortedSet<char>.Enumerator e1 = a.GetEnumerator(),
        e2 = b.GetEnumerator();
    while (e1.MoveNext() && e2.MoveNext())
        if (e1.Current != e2.Current)
            return false;
    return true;
}
...
Рейтинг: 0 / 0
Как сравнить два множества в C#?
    #38492023
Allllllllllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот здесь есть описание, и от туда же эти множества, но там написано только то, что их можно сравнить, определить какое множество какое в себя включает и тд, без конкретного примера, а без примера не получается.

http://professorweb.ru/my/csharp/charp_theory/level12/12_12.php
...
Рейтинг: 0 / 0
Как сравнить два множества в C#?
    #38492038
Allllllllllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яростный Меч
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
bool CmpSortedSet(SortedSet<char> a, SortedSet<char> b)
{
    if (a == b) return true;
    if ((a == null) || (b == null) || (a.Count != b.Count)) return false;
    SortedSet<char>.Enumerator e1 = a.GetEnumerator(),
        e2 = b.GetEnumerator();
    while (e1.MoveNext() && e2.MoveNext())
        if (e1.Current != e2.Current)
            return false;
    return true;
}



Спасибо, конечно, большое, но простите, к сожалению не могу въехать как это интегрировать в код, чтоб получить тру, если мн равны, и фалзе, если нет. По отдельности все буквочки вроде понимаю, а вот все вместе, че они значат, увы еще не достиг такого уровня подготовки. )))
...
Рейтинг: 0 / 0
Как сравнить два множества в C#?
    #38492423
Allllllllllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сравнить множества получилось вот так:

Код: c#
1.
if  (X == U)  Console.WriteLine(" Х = U ");



Не подскажете, как узнать какое множество в какое включено, (какое пустое, если можно)

Например

Код: c#
1.
if  (X   ВКЛЮЧЕНО В   U)  Console.WriteLine(" Х  включено  в   U ");
...
Рейтинг: 0 / 0
Как сравнить два множества в C#?
    #38492894
Allllllllllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не подскажете, почему не правильно работает:
равные множества не определяются равными


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace mnoztest
{
    class Program
    {
        static void Main(string[] args)
        {


            HashSet<char> mnttt = new HashSet<char>(); //создаем множество mnttt 
            HashSet<char> mnrrr = new HashSet<char>();  //создаем множество mnrrr 

            mnttt.Add('a'); //Добавим одинаковых элементов
            mnttt.Add('b');
            mnttt.Add('c');
            ShowColl3(mnttt, "Множество mnttt : ");

            mnrrr.Add('a'); //Добавим одинаковых элементов
            mnrrr.Add('b');
            mnrrr.Add('c');
            ShowColl3(mnrrr, "Множество mnrrr : ");

            if (mnttt == mnrrr) Console.WriteLine(" mnttt = mnrrr "); // пишет, что не равно
            else Console.WriteLine(" mnttt не равно mnrrr ");

        }
                static void ShowColl3(HashSet<char> ss, string s)
        {
            Console.Write(s);
            foreach (char ch in ss)
                Console.Write(ch + " ");
            Console.Write("\n");
        }

    }
}





как так !?
...
Рейтинг: 0 / 0
Как сравнить два множества в C#?
    #38492930
Allllllllllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто знает, как выявить пустое множество, ?
тогда можно было бы их вычесть друг из друга с целью сравнения
а то код
Код: c#
1.
2.
 if (mnrrr == null) Console.WriteLine(" mnrrr == null "); // Пишет не равно
            else Console.WriteLine(" mnttt неeeee == null   ");



тоже не работает!
...
Рейтинг: 0 / 0
Как сравнить два множества в C#?
    #38493043
Allllllllllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если тут кто-то будет: Вот такой код работает, эквивалентность, а не равенство это называется для множеств. )))

Код: c#
1.
2.
            if (ttt.SetEquals(rrr)) Console.WriteLine(" mnttt = mnrrr "); // 
            else Console.WriteLine(" mnttt не равно mnrrr ");



Причем просто Equals - уже не работает!

Код: c#
1.
2.
            if (ttt.Equals(rrr)) Console.WriteLine(" mnttt = mnrrr "); // 
            else Console.WriteLine(" mnttt не равно mnrrr ");
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как сравнить два множества в C#?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]