свойство удалить из списка - PullRequest
0 голосов
/ 10 октября 2011

Удалить свойство из списка

        NorthwindDataContext db = new NorthwindDataContext();
        List<CategorySml> oList = new List<CategorySml>();
        oList = db.Categories.Select(p => new CategorySml { CategoryID = p.CategoryID, CategoryName = p.CategoryName }).ToList();

class CategorySml

{
    public int CategoryID { get; set; }
    public string CategoryName { get; set; }
}

Мой список содержит более 100 строк. Теперь я хочу удалить CategoryID свойство из моего списка oList .IЯ знаю, как удалить элемент из списка. Синтаксис списка может сделать это, но я не знаю, как удалить свойства элемента

oList.RemoveAll(x => x.CategoryID== 1);

Помогите мне удалить свойство из списка. Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 10 октября 2011

Если вы хотите «удалить» свойство, у вас будет новый тип без этого свойства:

oList = db.Categories.Select(p => new YourNewCategorySml { 
  CategoryName = p.CategoryName })
  .ToList();  

или используйте анонимный тип:

oList = db.Categories.Select(p => new { CategoryName = p.CategoryName })
  .ToList();  
0 голосов
/ 10 октября 2011

Вы можете сделать это с помощью переменной анонимного типа

try
            {
               NorthwindDataContext db= new NorthwindDataContext();
               var oList = db.Categories.Select(p => new { Categoryname = p.CategoryName }).ToList();                
               dg.DataSource = oList;



                MessageBox.Show("OK"); 
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);   
            }
0 голосов
/ 10 октября 2011

Как насчет наследования?

class BaseCategory
{
  public string CategoryName { get; set; }
}
class CategorySml : BaseCategory

{
    public int CategoryID { get; set; }
}

NorthwindDataContext db = new NorthwindDataContext();
        List<BaseCategory> oList = new List<BaseCategory>();
        oList = db.Categories.Select(p => new BaseCategory{ CategoryName = p.CategoryName }).ToList();
...