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

Подскажите пожалуйста, как сделать набор 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
31.07.2015, 08:17
    #39020028
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать свойство в List уникальным
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
31.07.2015, 08:44
    #39020047
Nechto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать свойство в List уникальным
Dictonary не подходит. а вот про Hashtable нужно почитать
...
Рейтинг: 0 / 0
31.07.2015, 08:50
    #39020052
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать свойство в List уникальным
Nechto,
авторвыдавало ошибку, что поле F1 имеет совпадения.
если хотите что бы кричало
как вариант
Реализуйте у типа ААА - IComparable<AAA> по желаемому свойству (Ф1)
и пользуйтесь SortedSet
...
Рейтинг: 0 / 0
31.07.2015, 20:50
    #39020818
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать свойство в List уникальным
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
03.08.2015, 09:05
    #39021417
Nechto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать свойство в List уникальным
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
04.08.2015, 21:56
    #39022954
MrVoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать свойство в List уникальным
Где-то в степии пользуйтесь SortedSet

SortedSet не даёт уникальность.
...
Рейтинг: 0 / 0
05.08.2015, 06:23
    #39023021
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать свойство в List уникальным
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
05.08.2015, 08:27
    #39023063
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать свойство в List уникальным
Сон Веры Павловны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
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как сделать свойство в List уникальным / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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