C # - Entity, чтобы помочь с созданием строки - PullRequest
1 голос
/ 17 августа 2011

Данный класс:

   class SomeClass
    {
    public int intdata {get;set;}
    public string stringdata {get;set;}
    public double doubledata {get;set;}
    public string[] ToStringArray()
    {
       string one = intdata.ToString();
       string two = stringdata;
       string three = String.Format("{0:C}", doubledata);
       return new string[] {one,two,three};
    }
    }

Допустим, у нас есть 5 экземпляров SomeClass.Я хочу взять эти экземпляры и вставить упорядочить их в строки.

class RowHelper
{
   public void List<string[]> Rows;

   public RowHelper()
   {
      Rows = new List<string[]>();
   }
   public void CreateRows(SomeClass[] SomeClasses)
   {
       foreach(SomeClass rowData in SomeClasses)
       {
           Rows.Add(rowData.ToStringArray());
       }
   }
} 

Но теперь у меня нет возможности отделить один набор данных строки от следующего.Я мог бы добавить RowHelper Member public int RowSize.Тогда потребителю нужно будет использовать RowSize для разбора строк.Это лучший способ для этого?

Для чего я стою, я создаю вспомогательный класс для преобразования объектов в строки, которые можно вставить в table tr в слое View моего проекта MVC.

Ответы [ 2 ]

0 голосов
/ 17 августа 2011

Возможно, вы могли бы реализовать IComparable в SomeClass.

Есть много примеров того, как реализовать этот интерфейс. У Дэвида Хейдена есть блог об этом.

class SomeClass : IComparable
{
  ...
}
0 голосов
/ 17 августа 2011

Если вы хотите «отделить один набор данных строки от следующего», просто добавьте промежуточный класс RowSet между вашим RowHelper и вашими строками.

class RowSet
{
    public void List<string[]> Rows = new List<string[]>();
}

class RowHelper
{
    public List<RowSet> RowSets;

    public RowHelper()
    {
        RowSets = new List<RowSet>();
    }

    public void CreateRows(SomeClass[] SomeClasses)
    {
        RowSet set = new RowSet();

        foreach(SomeClass rowData in SomeClasses)
        {
             set.Rows.Add(rowData.ToStringArray());
        }

        RowSets.Add(set);
    }
} 

Итак, у RowHelper есть открытое свойство, представляющее собой коллекцию RowSet экземпляров.

RowSet содержит ваш список Rows.

Ваш метод CreateRows может создать новый экземпляр RowSet, заполнить его строками и добавить в свойство RowSets.

Теперь вы можете перебирать RowHelper.RowSets, а оттуда перебирать RowSet.Rows.

Подумайте, как вы будете различать ваши RowSet с, и соответственно выберите класс коллекции. Например, если вы просто будете обращаться к ним последовательно, List<RowSet> - это хорошо, но если вы хотите использовать, скажем, именованный индекс, рассмотрите Dictionary<string,RowSet> вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...