powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как сделать свойство в List уникальным
9 сообщений из 9, страница 1 из 1
Как сделать свойство в List уникальным
    #39020022
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые программисты!

Подскажите пожалуйста, как сделать набор List с уникальным полем?

Пример:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public class AAA 
{
     public int F1 {get; set;}
     public string F2 {get; set;}
     public string F3 {get; set;}
}

var dd = new List<AAA>() 
{
     {1, "111","111"},
     {1, "22","112"},
     {2, "121","131"}, 
}


Чтобы при выполнение приведенного примера, выдавало ошибку, что поле F1 имеет совпадения. Аналогично Dictionary.
...
Рейтинг: 0 / 0
Как сделать свойство в List уникальным
    #39020028
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoЗдравствуйте, уважаемые программисты!

Подскажите пожалуйста, как сделать набор List с уникальным полем?

Пример:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public class AAA 
{
     public int F1 {get; set;}
     public string F2 {get; set;}
     public string F3 {get; set;}
}

var dd = new List<AAA>() 
{
     {1, "111","111"},
     {1, "22","112"},
     {2, "121","131"}, 
}


Чтобы при выполнение приведенного примера, выдавало ошибку, что поле F1 имеет совпадения. Аналогично Dictionary.
использовать Dictionaty O_O или Hashtable, а не List
...
Рейтинг: 0 / 0
Как сделать свойство в List уникальным
    #39020047
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dictonary не подходит. а вот про Hashtable нужно почитать
...
Рейтинг: 0 / 0
Как сделать свойство в List уникальным
    #39020052
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nechto,
авторвыдавало ошибку, что поле F1 имеет совпадения.
если хотите что бы кричало
как вариант
Реализуйте у типа ААА - IComparable<AAA> по желаемому свойству (Ф1)
и пользуйтесь SortedSet
...
Рейтинг: 0 / 0
Как сделать свойство в List уникальным
    #39020818
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nechto,

лисапед:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
DataTable dt = new DataTable();
dt.Columns.Add("F1", typeof(int)).Unique = true; // !
dt.Columns.Add("F2", typeof(string));
dt.Columns.Add("F3", typeof(string));

dt.LoadDataRow(new object[] { 1, "111", "111" }, false);
dt.LoadDataRow(new object[] { 1, "22", "112" }, false); // ConstraintException
dt.LoadDataRow(new object[] { 2, "121", "131" }, false);
...
Рейтинг: 0 / 0
Как сделать свойство в List уникальным
    #39021417
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petalvikNechto,

лисапед:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
DataTable dt = new DataTable();
dt.Columns.Add("F1", typeof(int)).Unique = true; // !
dt.Columns.Add("F2", typeof(string));
dt.Columns.Add("F3", typeof(string));

dt.LoadDataRow(new object[] { 1, "111", "111" }, false);
dt.LoadDataRow(new object[] { 1, "22", "112" }, false); // ConstraintException
dt.LoadDataRow(new object[] { 2, "121", "131" }, false);



Спасибо за полезный пример!!!
...
Рейтинг: 0 / 0
Как сделать свойство в List уникальным
    #39022954
MrVoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степии пользуйтесь SortedSet

SortedSet не даёт уникальность.
...
Рейтинг: 0 / 0
Как сделать свойство в List уникальным
    #39023021
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrVoidSortedSet не даёт уникальность.
Да ну?
Код: c#
1.
2.
3.
4.
5.
[SerializableAttribute]
[DebuggerDisplayAttribute("Count = {Count}")]
public class SortedSet<T> : ISet<T>, 
	ICollection<T>, IEnumerable<T>, IEnumerable, ICollection, ISerializable, 
	IDeserializationCallback, IReadOnlyCollection<T>


- https://msdn.microsoft.com/en-us/library/dd412070(v=vs.110).aspx
авторThis interface provides methods for implementing sets, which are collections that have unique elements and specific operations. The HashSet<T> and SortedSet<T> collections implement this interface.
- https://msdn.microsoft.com/en-us/library/dd412081(v=vs.110).aspx
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
try
{
  Console.WriteLine("Ok: {0}", new SortedSet<int> { 0, 0, 1, 1, 2, 2 }.Count);
}
catch (Exception e)
{
  Console.WriteLine(e.Message);
}


- как думаете, что будет в консоли?
...
Рейтинг: 0 / 0
Как сделать свойство в List уникальным
    #39023063
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныMrVoidSortedSet не даёт уникальность.
Да ну?
Код: c#
1.
2.
3.
4.
5.
[SerializableAttribute]
[DebuggerDisplayAttribute("Count = {Count}")]
public class SortedSet<T> : ISet<T>, 
	ICollection<T>, IEnumerable<T>, IEnumerable, ICollection, ISerializable, 
	IDeserializationCallback, IReadOnlyCollection<T>


- https://msdn.microsoft.com/en-us/library/dd412070(v=vs.110).aspx
авторThis interface provides methods for implementing sets, which are collections that have unique elements and specific operations. The HashSet<T> and SortedSet<T> collections implement this interface.
- https://msdn.microsoft.com/en-us/library/dd412081(v=vs.110).aspx
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
try
{
  Console.WriteLine("Ok: {0}", new SortedSet<int> { 0, 0, 1, 1, 2, 2 }.Count);
}
catch (Exception e)
{
  Console.WriteLine(e.Message);
}


- как думаете, что будет в консоли?
думаю будет "Ок: 3"
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как сделать свойство в List уникальным
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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