Практика CШАРП, задания, примеры.

List не умеет делать то что ты хочешь. придется самому реализовывать.

Либо если ты используешь анонимные процедуры, то все равно придется ее описать
 
у List<> есть метод .Min я просто не смог понять как задать массив не с нулевого поля а с 1го, Вы вроде как php а вот с C# непосредственно не знакомы, к чему это писать?

Это проблема не самой концепции, а конкретного метода.
 
и что это значит? list.Min(list[1]) так писать
или list[1].Min()?

нет. нужно описать как он должен сравнивать. для этого есть
.Min((a, b) =>
{
// тут сравниваешь A B как тебе нужно и возвращаешь минимальное.
}

можно почитать здесь
Тільки зареєстровані користувачі бачать весь контент у цьому розділі



Это откуда? :)



у List<> есть метод .Min я просто не смог понять как задать массив не с нулевого поля а с 1го
метод не умеет. все равно придется самому.



Можно либо перед использованием .Min() копировать лист в другой лист с оффсетом 1 (начать копировать с 1го элемента), затем уже на новом выполнить .Min(), либо полностью свою процедуру писать.

Но первый вариант очень не желателен так как использует много памяти там, где этого можно без труда избежать
 
Останнє редагування:
Какой сложности? Как например идентифицировать пользователя на уникальность не используя куки и сессии?
Вот отсюда, перепутал с Хранителем



можно почитать здесь
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
Я не разобрался, что задать начало с 1 нельзя.
Если я просто удалю нулевой элемент и дальше вычислю минимум это приемлемо?
 
Останнє редагування:
сессии и куки не только в пхп существуют.

Вот отсюда, перепутал с Хранителем




Я не разобрался, что задать начало с 1 нельзя.
Если я просто удалю нулевой элемент и дальше вычислю минимум это приемлемо?

вполне
 
Спасибо огромное)))



if (WordCoord.Contains(???????????????)or WordCoord.Exist(???????????????)
{
wordrange.Add(n);
}
Нужно что бы проверило есть ли в List<int> WordCoord нулевой элемент. Не получается. ContainsKey нет там метода.

По индексу, а не по значению внутри.



if (0 != WordCoord.Count()), есть вариант по лучше?
 
Останнє редагування:
Что предполагает "Базовые знания .Net"? Это CLR, CTS, CLS?
 
Есть переменная List<Dictionary <int,int>> Li В ней у меня несколько значений Dictionary<int,int>. Необходимо что бы каждое значение Dictionary<int,int> вывилось на консоль, но ни как не пойму как надо сделать Console.WriteLine(Li.???)

При это у каждого элемента List несколько значений Dictionary<int,int>.
 
Код:
foreach(var listItem in li)
{
    foreach(var dicItem in listItem)
    {
        Console.WriteLine("Key: " + dicItem.Key.ToString() + " Value: " + dicItem.Value.ToString());
    }
}
 
Останнє редагування:
Останнє редагування:
Есть переменная List<Dictionary <int,int>> Li В ней у меня несколько значений Dictionary<int,int>. Необходимо что бы каждое значение Dictionary<int,int> вывилось на консоль, но ни как не пойму как надо сделать Console.WriteLine(Li.???)

вот
Код:
foreach (var listItem in li.SelectMany(x=>x))
                Console.WriteLine("Key: " + listItem.Key + " Value: " + listItem.Value);

Console.WriteLine("Key: " + dicItem.Key.ToString() + " Value: " + dicItem.Value.ToString());
бессмысленно писать ToString() в методе WriteLine



Могу ли я получить доступ к значениям dicItem без цикла, по индексу?
по индексу можно получить доступ только к любому элементу словаря из списка Li,
то есть Li[3]

но к словарю Dictionary доступ через индекс не возможен, только через значение ключа,
допустим
Код:
var dict = new Dictionary<int, int>
            {
                {3, 4534}, {5, 1234},{7, 1234}
            };
чтобы получить доступ ко второму элементу нужно знать его ключ
dict[5] это будет значение 1234
 
Останнє редагування:
Зато правильно. И пишется не в методе, а в аргументе, это два разных случая. Писали код когда-нибудь с жестким code analisys?

Не согласен, правильно вот так хотябы.
Код:
Console.WriteLine("Key: {0}  Value: {1}", dicItem.Key, dicItem.Value);
 
так еще правильнее и оптимальнее, но никак не вариант "бессмысленно писать так". Полагаться на компилятор - последнее дело.
 
Есть переменная List<Dictionary <int,int>> Li В ней у меня несколько значений Dictionary<int,int>. Необходимо что бы каждое значение Dictionary<int,int> вывилось на консоль, но ни как не пойму как надо сделать Console.WriteLine(Li.???)

При это у каждого элемента List несколько значений Dictionary<int,int>.

li.ForEach(dict => dict.ToList().ForEach(pair => Console.WriteLine("Key: {0}, Value: {0}", pair.Key, pair.Value)));



Зато правильно. И пишется не в методе, а в аргументе, это два разных случая. Писали код когда-нибудь с жестким code analisys?

это не только неправильно, но и опасно, такой код опасен тем, что может вызвать NullReferenceException.

для всех аргументов Console.WriteLine и так вызывает ToString. Если добавить вызов перед передачей аргумента, то это по сути будет равнозначно вызову (value.ToString() ?? string.Empty).ToString()

если value==null, то ваш код
Код:
Console.WriteLine("Value: {0}", value.ToString())
обвалится с исключением, а вот код
Код:
Console.WriteLine("Value: {0}", value)
отработает корректно ;)
 
Останнє редагування:
Назад
Зверху Знизу