Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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中添加对象列表_C#_List_Object - Fatal编程技术网

C# 如何在c中添加对象列表

C# 如何在c中添加对象列表,c#,list,object,C#,List,Object,我有一个用户有多辆车。我需要创建一个对象列表,列出他所有汽车的所有属性 他的车 UserID UserCarID 101 C101 101 C102 101 C103 他的汽车性能表 UserCarID Model Year Color C101 Audi 2012 Black C102 BMW 2012 Silver C103 VW 2012 White C104

我有一个用户有多辆车。我需要创建一个对象列表,列出他所有汽车的所有属性

他的车

UserID   UserCarID
 101       C101
 101       C102
 101       C103
他的汽车性能表

UserCarID   Model  Year  Color
C101        Audi   2012  Black
C102        BMW    2012  Silver
C103        VW     2012  White
C104        Audi   2013  Black
C105        VW     2013  White
我想要一张清单,这样就只有他的汽车清单出现了

UserID UserCarID   Model  Year  Color
101    C101        Audi   2012  Black
101    C102        BMW    2012  Silver
101    C103        VW     2012  White
我试过了

using (SqlConnection con = .....)
        {
            con.Open();
            SqlCommand cmd = con.CreateCommand();
            cmd.CommandText = "Select * FROM CarTable Where UserID = @ID";
            cmd.Parameters.Add(new SqlParameter("@ID", UserID));

            SqlDataReader reader = cmd.ExecuteReader();

                if (reader.HasRows)
                {
                    for (int i = 0; i <= tempID.Length - 1; i++)
                    {
                        tempID[i] = -1;
                    }
                    int j = 0;
                    while (reader.Read())
                    {
                        tempID[j] = (int)reader["ID"];
                        j++;
                    }
                    reader.Close();
                }
            con.Close();

        }
        foreach (int carID in tempID)
        {
            if (carID > -1) return JsonConvert.SerializeObject(getAllCars(carID));
        }

        public static object getAllCars(int id){
            .........
            return carPropertiesObject;
        }
getAllCars返回汽车所有属性的列表。
这是可行的,但我只得到C101的属性。我该怎么做呢?谢谢你

我对你的确切问题有点不清楚,但我想试一试:

似乎是创建汽车类的好时机:

class Car
{
    int UserID;
    int UserCarID;
    string Model; 
    int Year;  
    string Color;
}
然后


您用来处理查询结果的方法在我看来非常奇怪。你这样做有什么具体原因吗?

你的问题不是很清楚。这似乎是SQL查询问题,而不是列表连接问题

假设这两个表都是SQL Server中的表,您可以通过一个查询从数据库中获取结果:

Select * FROM CarTable, CarPropertiesTable
WHERE CarTable.UserId = CarPropertiesTable.UserId
AND CarTable.UserId = @ID

然后迭代返回的数据行并将其转换为您的对象。查看关于创建Car类的另一个答案,这是一个非常好的主意,然后将它们序列化为JSON。

Return将在第一个结果时退出方法,退出foreach循环。谢谢您actkatiemacias。。。我想,因为我只得到第一组数据。如何从getAllCarsWhat中添加剩余的数据集tempID?它在代码的很多行中都有使用,但您没有在任何地方定义它…Abe。。。它是全局定义的,它是一个存储car表中所有UserCarID的数组谢谢你的建议Mattias,但我的目标是创建一个对象列表谢谢Jason。。。我的情况的问题是我从一个存储过程中获得了CarTable…所以我真的不能只使用sql查询谢谢Abe。。。我正在从一个存储过程中获取carTable。我只是放了sql查询,使方法更有意义。。。我会试试你的解决方案。。。我真傻。。。非常感谢你,阿贝。。。工作得很有魅力。。。我真的是个新手。。。我没有想到使用类而不是数组。。。谢谢你会的
Select * FROM CarTable, CarPropertiesTable
WHERE CarTable.UserId = CarPropertiesTable.UserId
AND CarTable.UserId = @ID