Страница 1 из 2

Простой вопрос про лист

СообщениеДобавлено: 29 окт 2018, 13:52
Gidly
Делаю инвентарь, в основе лист.
Как сделать так, чтобы объект определенного типа(в моем случае на объекте есть скрипт с переменными, где просто строчка типа) нельзя было добавить в лист больше 1 раза?

Re: Простой вопрос про лист

СообщениеДобавлено: 29 окт 2018, 14:08
1max1
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections.Generic;

class Item
{
    public enum Type
    {
        Gun,
        Knife,
        Other
    }

    public int id;
    public Type type;
}

class _XXX : MonoBehaviour
{
    List<Item> items = new List<Item>();

    void AddItem(Item item)
    {
        if (!items.Exists(i => i.type == item.type))
        {
            items.Add(item);
        }
    }
}

Re: Простой вопрос про лист

СообщениеДобавлено: 29 окт 2018, 14:25
Paul Siberdt
Я умиляюсь с тоннельного зрения форумчан:
Человек спросил про List. В ответ ему дали код с Linq.

Re: Простой вопрос про лист

СообщениеДобавлено: 29 окт 2018, 14:35
1max1
Ты там под лсд?) Какой linq, посмотри библы какие подключены, лол.

Re: Простой вопрос про лист

СообщениеДобавлено: 29 окт 2018, 14:48
Saltant
Paul Siberdt писал(а):Я умиляюсь с тоннельного зрения форумчан:
Человек спросил про List. В ответ ему дали код с Linq.

Это лямбда-выражения.

Re: Простой вопрос про лист

СообщениеДобавлено: 29 окт 2018, 14:55
Gidly
1max1 писал(а):
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections.Generic;

class Item
{
    public enum Type
    {
        Gun,
        Knife,
        Other
    }

    public int id;
    public Type type;
}

class _XXX : MonoBehaviour
{
    List<Item> items = new List<Item>();

    void AddItem(Item item)
    {
        if (!items.Exists(i => i.type == item.type))
        {
            items.Add(item);
        }
    }
}


Спасибо, работает!

Re: Простой вопрос про лист

СообщениеДобавлено: 29 окт 2018, 17:34
Paul Siberdt
Saltant писал(а):
Paul Siberdt писал(а):Я умиляюсь с тоннельного зрения форумчан:
Человек спросил про List. В ответ ему дали код с Linq.

Это лямбда-выражения.

Да похер, ламбда-хулямбда. Дело в ситуации а-ля "Папа, а с кем ты сейчас разговаривал?"

Re: Простой вопрос про лист

СообщениеДобавлено: 29 окт 2018, 17:34
Paul Siberdt
1max1 писал(а):Ты там под лсд?) Какой linq, посмотри библы какие подключены, лол.

Поясняю на пальцах:
Молодой (судя по указанному возрасту в профиле - совсем молодой) человек, что зарегистрировался на форуме несколько месяцев назад спросил про массивы.
В ответ человеку дали код, который он не в состоянии прочесть, разве что скопипастить. То есть, вместо понятной читаемой логики - скрепящий на зубах сахар.

Интересно, осознаете ли вы абсурдность такого ответа с педагогической, менторской или старшетоварищеской стороны? :)

Да, не linq, а lambda. Мне было достаточно на автомате напечатать, вам же - так же не задумываясь о причинах, пололить.

Re: Простой вопрос про лист

СообщениеДобавлено: 29 окт 2018, 17:56
1max1
Зачем столько философии? Ты сказал там линк, я сказал что там не линк, при этом помог человеку, тем что показал как можно реализовать, то что он хочет, к тому же раздел "Почемучка" для этого и создан.
Интересно, осознаете ли вы абсурдность такого ответа с педагогической, менторской или старшетоварищеской стороны? :)

Мне плевать, я на звание "лучший учитель года" не претендую)

Re: Простой вопрос про лист

СообщениеДобавлено: 29 окт 2018, 17:59
Paul Siberdt
Я просто о том, что в "почемучкам" лямбды не добавят знаний, а, скорее, запутают.
Мне плевать

Да, я именно об этом.

Re: Простой вопрос про лист

СообщениеДобавлено: 29 окт 2018, 18:36
Saltant
Paul Siberdt писал(а):Я просто о том, что в "почемучкам" лямбды не добавят знаний, а, скорее, запутают.
Мне плевать

Да, я именно об этом.

Люди разные. Я на оборот лучше учусь на сложных вариантах, более гибких, для меня такое лучше бустит знания и подталкивает "погуглить нипанятное".

Re: Простой вопрос про лист

СообщениеДобавлено: 29 окт 2018, 20:29
Paul Siberdt
Люди разные

Именно. И сначала имеет смысл узнать о собеседнике, вместо помощи в манере "Как научить ребенка плавать за две минуты".

Re: Простой вопрос про лист

СообщениеДобавлено: 29 окт 2018, 21:21
Saltant
Paul Siberdt писал(а):
Люди разные

Именно. И сначала имеет смысл узнать о собеседнике, вместо помощи в манере "Как научить ребенка плавать за две минуты".

Человек-разумный, сам решит подходит ли ему что предложили или слишком сложно :) Ни какой катастрофы не случится если решение будет более "профессионально-сложное" ;)

Re: Простой вопрос про лист

СообщениеДобавлено: 29 окт 2018, 21:56
DimaJoke
Лол, вы набросились на него за тот, код, где он АХРЕНЕТЬ как понятно всё написал, что даже я понял как это работает, хотя никогда не имел дело с List и т.п ... Мне тоже 14

Re: Простой вопрос про лист

СообщениеДобавлено: 29 окт 2018, 22:38
seaman
Я как то пытался отвечать так, чтобы не копипастили, а думали и сами приходили к решению. И понял, что это никому нафиг не надо. Как в другом месте написали:
12 урок туманные перспективы использовании, когда есть тонны готовых шейдеров отбивают всякое желание изучать их

Зачем типа изучать, когда их тонна? Ну а если не найдешь - спросишь - напишут скриптик (шейдер) добрые дяденьки.
Топикастеру скорее всего тоже совершенно не нужно понимать как работает, главное - работает!

Ну и потихоньку бросил отвечать...