Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用类将特定数据存储到列表中_C#_.net_List - Fatal编程技术网

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变量