using System.Collections.Generic;
....
metod1(new HashSet<SortedSet<int>> {
new SortedSet<int> { 4, 5,9 },
new SortedSet<int> {3,6,8,99,777 },
new SortedSet<int> { 7,9,67,98,999 },
new SortedSet<int> {98}
});
3) Искать можно по запросам, например "C# initialize collection of collections" или "C# initialize array of arrays"
dавно освоил, но в данном случае не могу пользоваться. эти методы(только методы) я загружаю в интернет, а там усинг отвергают как чужеродные тела для методов, а без полных путей не находят некоторые типы
S>2) Если не ошибаюсь, должно быть примерно так:
S>using System.Collections.Generic;
S> metod1(new HashSet<SortedSet<int>> {
S> new SortedSet<int> { 4, 5,9 },
S> new SortedSet<int> {3,6,8,99,777 },
S> new SortedSet<int> { 7,9,67,98,999 },
S> new SortedSet<int> {98}
S>}); S>
спасибо, я так пробовал и видать недопробовал.. у меня было только два нев а тут целый выводок
S>3) Искать можно по запросам, например "C# initialize collection of collections" или "C# initialize array of arrays"
мне как-то надо бы научиться правильные запросы строить. я часто не могу выудить нужные мне ответы
Здравствуйте, nt2000, Вы писали:
N>мне как-то надо бы научиться правильные запросы строить. я часто не могу выудить нужные мне ответы
читай guides, гайды, учебники. Ответы на вопросы тебе не помогут. Начни в википедии с алгоритмов и структур данных. SortedSet к примеру это сбалансированное B-дерево — оно довольно редко используется в C#, потому что везде индексы в реляционных и не очень базах на них работают.
Вам необходимо прочесть книгу по С#. Более-менее любую. Для того, чтобы во-первых, освоиться с синтаксисом, а во-вторых, с терминологией.
Ситуация сейчас примерно такая, как, скажем, у меня с китайским. Наверное, если мне показывать переводы на китайский отдельных фраз, то я смогу пытаться строить и свои фразы по образцу. Ну, там, посмотрев на то, как записывается "четверо мужчин" и "трое женщин", можно попытаться написать "трое мужчин". Но чуть вправо-влево — всё, я даже не знаю, что искать.
В вашем случае проблема, с которой вы столкнулись, не имеет никакого отношения к вашему поисковому запросу. Чтобы найти ответ на ващ вопрос, нужно понимать, что использованная вами конструкция называется collection initializer. Если искать по нему, то вы быстро найдёте официальный гайд: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/object-and-collection-initializers
Ясно, что у вас в качестве элементов коллекции (и тут неважно, какая именно коллекция — важна реализация IEnumerable<T> и метода Add() подходящей сигнатуры) выступают не просто атомарные значения, а SortedSet.
И вот в этом и происходит вся проблема: когда вы в качестве элементов инициализатора передаёте конструкции {a, b, c, ...}, то компилятор понимает это как попытку вызвать метод Add(a, b, c, ...) — посмотрите на пример с FormattedAddresses по ссылке.
А вам нужно, чтобы вызвался метод Add(SortedSet).
Именно поэтому придётся писать в каждом элементе "родительского" списка какое-то выражение, которое возвращает SortedSet<int>.
Например, точно такой же collection initializer: new SortedSet<int>() { 4, 5,9 }.
Вам нужно понять, из каких "кирпичиков" состоит программа на языке C#; тогда вы сможете подбирать нужные вам кирпичики, а непонятные вам — гуглить.
Например, по запросу nested collection initializers легко нагугливается https://marcin-chwedczuk.github.io/object-and-collection-initializers-in-csharp, где тонкости работы инициализаторов разобраны значительно подробнее, чем в официальном гайде.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.