C# 如何使用类将特定数据存储到列表中
我想问一下如何将数据存储到列表中,但不是所有数据都像这样, 类别:C# 如何使用类将特定数据存储到列表中,c#,.net,list,C#,.net,List,我想问一下如何将数据存储到列表中,但不是所有数据都像这样, 类别: public class CategoryEnt { public int CategoryID { get; set; } public string CategoryName { get; set; } public int ParentID { get; set; } public bool IsDisplayed { get; set; } public bool IsTopCat
public class CategoryEnt
{
public int CategoryID { get; set; }
public string CategoryName { get; set; }
public int ParentID { get; set; }
public bool IsDisplayed { get; set; }
public bool IsTopCat { get; set; }
public bool IsTrending { get; set; }
public int SequenceID { get; set; }
public string Filtering { get; set; }
public string ImageURL { get; set; }
}
我只想添加到列表CategoryID、CategoryName、ImageUrl
while (reader.Read())
{
CategoryEnt category = new CategoryEnt();
category.CategoryID = Convert.ToInt32(reader["CategoryID"]);
category.CategoryName = reader["CategoryName"].ToString();
category.ImageURL = reader["ImageURL"].ToString();
list.Add(category);
}
现在,剩下的数据包括,但是使用默认值/null,我不希望剩下的数据包括在列表中。如何只存储要列出的特定数据?有什么线索吗?您不能直接这样做,但可以通过使用以下代码间接实现这一点:
List<CategoryEnt> CategoryEntList = new List<CategoryEnt>();
while (reader.Read())
{
CategoryEntList.Add(new CategoryEnt(){
CategoryID = Convert.ToInt32(reader["CategoryID"]),
CategoryName = reader["CategoryName"].ToString(),
ImageURL = reader["ImageURL"].ToString(),
});
}
var requiredValues = CategoryEntList.Select(x => new
{ CategoryID = x.CategoryID,
CategoryName = x.CategoryName,
ImageURL = x.ImageURL
}).ToList();
List categoryantlist=new List();
while(reader.Read())
{
添加(新的CategoryEntList(){
CategoryID=Convert.ToInt32(读卡器[“CategoryID]”),
CategoryName=读取器[“CategoryName”]。ToString(),
ImageURL=读取器[“ImageURL”]。ToString(),
});
}
var requiredValues=CategoryEntList。选择(x=>new
{CategoryID=x.CategoryID,
CategoryName=x.CategoryName,
ImageURL=x.ImageURL
}).ToList();
现在,
requiredValues
是一个列表,它只包含您在Select
中指定的值,您可以继续操作 试着用你需要的信息来上课。比如:
public class Category
{
public int CategoryID { get; set; }
public string CategoryName { get; set; }
public string ImageURL { get; set; }
}
然后,您可以使用
public class CategoryEnt
{
public Category CategoryPrimaryDetails { get; set; }
public int ParentID { get; set; }
public bool IsDisplayed { get; set; }
public bool IsTopCat { get; set; }
public bool IsTrending { get; set; }
public int SequenceID { get; set; }
public string Filtering { get; set; }
}
您的原始代码变成:
List<Category> list = new List<Category>();
while (reader.Read())
{
Category category = new Category() {
CategoryID = Convert.ToInt32(reader["CategoryID"]);
CategoryName = reader["CategoryName"].ToString();
ImageURL = reader["ImageURL"].ToString()
}
list.Add(category);
CategoryEnt detailedCategory = new CategoryEnt() {CategoryPrimaryDetails = category};
}
List List=新列表();
while(reader.Read())
{
类别=新类别(){
CategoryID=Convert.ToInt32(读卡器[“CategoryID]”);
CategoryName=reader[“CategoryName”].ToString();
ImageURL=reader[“ImageURL”].ToString()
}
列表。添加(类别);
CategoryEnt detailedCategory=new CategoryEnt(){CategoryPrimaryDetails=category};
}
是的,像这样,但如何返回列表,因为我的方法是public list,所以必须返回list变量