将数据集筛选为两部分

本文关键字:两部分 筛选 数据集 | 更新日期: 2023-09-27 18:35:07

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

                          UserID  int,document nvarchar(100)
我知道数据集将包含属于

两个用户的数据的信息,例如,数据将包含用户ID为1或2。现在我想过滤数据集两次。首先,我希望包含用户ID的所有行都为1,其次,我希望所有行都包含UserID为2。但是UserId是动态的。这已确认数据将仅针对两个用户。现在我的问题是如何过滤这些数据。

将数据集筛选为两部分

你想按特定的creteria过滤列表吗?

假设您有结构体用户:

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();
}