C# 将数据集过滤为两部分

C# 将数据集过滤为两部分,c#,filter,dataset,C#,Filter,Dataset,伙计们,我有一个包含以下信息的数据集: UserID int,document nvarchar(100) 我知道数据集将包含属于两个用户的数据的信息,例如,数据将包含用户ID 1或2。现在我想过滤数据集两次。首先,我希望所有包含userID的行都是1,其次,我希望所有包含userID的行都是2。但是userID是动态的。这已确认数据将只用于两个用户。现在我的问题是如何筛选这些数据。是否要按特定的准则筛选列表 假设您拥有struct用户:

伙计们,我有一个包含以下信息的数据集:

                          UserID  int,document nvarchar(100)

我知道数据集将包含属于两个用户的数据的信息,例如,数据将包含用户ID 1或2。现在我想过滤数据集两次。首先,我希望所有包含userID的行都是1,其次,我希望所有包含userID的行都是2。但是userID是动态的。这已确认数据将只用于两个用户。现在我的问题是如何筛选这些数据。

是否要按特定的准则筛选列表

假设您拥有struct用户:

struct User
{
    int id;
    string document;

    public int Id
    {
        get { return id; }
    }

    public string Document
    {
        get { return document; }
    }
    public User(int id, string document)
    {
        this.id = id;
        this.document = document;
    }
}
因此,您可以使用LINQ对数据进行如下过滤:

User[] data = new User[] {
            new User(1, "first"),
            new User(1, "second"),
            new User(1, "third"),
            new User(2, "first"),
            new User(2, "second"),
            new User(2, "third"),

        };
        //Get all data with userID = 1
        User[] userID1 = data.Where(user => user.Id == 1).ToArray();

        //Get all data with userID = 2
        User[] userID2 = data.Where(user => user.Id == 2).ToArray();
如果这不是你的问题,请说明你的问题

编辑: 如果不知道数据集中的ID,可以按用户ID对数据进行分组:

var userData = data.GroupBy(user => user.Id).ToArray();
foreach (var item in userData)
{
    var arr = item.ToArray();
}

亲爱的我不知道UserID列数据它可以是任何数据。但它肯定整个数据表将只包含两个UserID。例如,有时UserID可以是1和2,而另一些时候UserID列将包含UserID 5和6的数据。