Многомерный arraylist или список в C#?

Первый, удостоверьтесь, что Вы совершенно прозрачны в своих требованиях.

я очень не хочу сказать это, но по моему опыту, унесенные крайние сроки так же, как часто вопрос неясных требований или слабых спецификаций со стороны супервизора. Первое, что нужно сделать состоит в том, чтобы удостовериться, что проблема или не происходит с, или усиленная, Вы.

кроме того, удостоверьтесь, что Ваши требования реалистичны, а также его оценки.

Удостоверяются, что Ваши собственные ожидания не продвигают его делать нереалистичные оценки для соответствия нереалистичным требованиям.

Помнят, Вы делаете требования, но разработчик ВСЕГДА делает оценки и не должен быть поколеблен с, "может мы делать это немного быстрее", если Вы также не определяете функциональность, которая будет отброшена.

Затем удостоверьтесь, что он отслеживает свое время/задачи точно, таким образом, можно получить хорошее представление того, что продолжает проект.

Этот процесс покажет любое отсутствие надлежащего времени/задачи, отслеживая, который может закончить тем, что был первым шагом к улучшению. Если Вы не видите после проекта, сколько времени конкретный объект взял, который является, вероятно, причиной проблемы тут же - недостаточно определения в оценке или недостающие задачи "зависимости", которые являются обнаруженной серединой проекта, но никогда не оцениваемый.

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

Затем посмотрите, где его оценки перестали работать и фигура почему. Пробегитесь через оценку унесенного проекта, превратите это в сам проект - проблема, которая будет решена.

, Как только Вы решили, что его оценки являются действительно источником проблемы, пробегитесь через оценку, которая перешла с ним, и возможно другим разработчиком и фигурой почему.

Это поможет Вам выяснить, какова причина проблемы. Основательное понимание проблемы, вероятно, будет фактическим решением.

Наконец, если Вы на самом деле достигаете точки, где необходимо попробовать наказание или приведение, пора уволить его и запуститься.

Наказание и Приведение являются соответствующими ответами на преднамеренный проступок в определенных ситуациях.

Однако, если бы этот разработчик активно пытается сделать хорошее задание, то Вы только ухудшили бы ситуацию путем генерации негативного отношения и разочарования.

, Если проблема не может быть решена, и Вы уверены, что проблема с ним и не Вами, тогда пора уволить его и получить разработчика, который может выполнить работу в срок. Большая работа не означает много, когда Ваши затраты аварийно завершаются, и прибыль идет из окна.

12
задан Herahadi An 10 July 2018 в 02:25
поделиться

5 ответов

Вы можете создать список списков

   public class MultiDimList: List<List<string>> {  }

или Словарь списков, доступных по ключу

   public class MultiDimDictList: Dictionary<string, List<int>>  { }
   MultiDimDictList myDicList = new MultiDimDictList ();
   myDicList.Add("ages", new List<int>()); 
   myDicList.Add("Salaries", new List<int>()); 
   myDicList.Add("AccountIds", new List<int>()); 

Общие версии, чтобы реализовать предложение в комментарии от @ user420667

  public class MultiDimList<T>: List<List<T>> {  }

и для словаря,

   public class MultiDimDictList<K, T>: Dictionary<K, List<T>>  { }

  // to use it, in client code
   var myDicList = new MultiDimDictList<string, int> ();
   myDicList.Add("ages", new List<T>()); 
   myDicList["ages"].Add(23);
   myDicList["ages"].Add(32);
   myDicList["ages"].Add(18);

   myDicList.Add("salaries", new List<T>());
   myDicList["salaries"].Add(80000);
   myDicList["salaries"].Add(100000);

   myDicList.Add("accountIds", new List<T>()); 
   myDicList["accountIds"].Add(321123);
   myDicList["accountIds"].Add(342653);

или, что еще лучше, ...

   public class MultiDimDictList<K, T>: Dictionary<K, List<T>>  
   {
       public void Add(K key, T addObject)
       {
           if(!ContainsKey(key)) Add(key, new List<T>());
           if (!base[key].Contains(addObject)) base[key].Add(addObject);
       }           
   }


  // and to use it, in client code
    var myDicList = new MultiDimDictList<string, int> ();
    myDicList.Add("ages", 23);
    myDicList.Add("ages", 32);
    myDicList.Add("ages", 18);
    myDicList.Add("salaries", 80000);
    myDicList.Add("salaries", 110000);
    myDicList.Add("accountIds", 321123);
    myDicList.Add("accountIds", 342653);

EDIT: для включения метода Add () для вложенного экземпляра:

public class NestedMultiDimDictList<K, K2, T>: 
           MultiDimDictList<K, MultiDimDictList<K2, T>>: 
{
       public void Add(K key, K2 key2, T addObject)
       {
           if(!ContainsKey(key)) Add(key, 
                  new MultiDimDictList<K2, T>());
           if (!base[key].Contains(key2)) 
               base[key].Add(key2, addObject);
       }    
}
33
ответ дан 2 December 2019 в 03:22
поделиться

Depending on your exact requirements, you may do best with a jagged array of sorts with:

List<string>[] results = new { new List<string>(), new List<string>() };

Or you may do well with a list of lists or some other such construct.

1
ответ дан 2 December 2019 в 03:22
поделиться

вы просто составите список списков следующим образом:

List<List<string>> results = new List<List<string>>();

, а затем просто используйте нужные вам функции

results.Add(new List<string>()); //adds a new list to your list of lists
results[0].Add("this is a string"); //adds a string to the first list
results[0][0]; //gets the first string in your first list
6
ответ дан 2 December 2019 в 03:22
поделиться

Не совсем так. Но вы можете создать список списков:

var ll = new List<List<int>>();
for(int i = 0; i < 10; ++i) {
    var l = new List<int>();
    ll.Add(l);
}
4
ответ дан 2 December 2019 в 03:22
поделиться

If you want to modify this I'd go with either of the following:

List<string[]> results;

-- or --

List<List<string>> results;

depending on your needs...

1
ответ дан 2 December 2019 в 03:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: