【问题标题】:Filter dataset into two portions将数据集过滤成两部分
【发布时间】:2015-02-20 11:31:45
【问题描述】:

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

                          UserID  int,document nvarchar(100)

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

【问题讨论】:

    标签: c# filter dataset


    【解决方案1】:

    您要按特定条件过滤列表吗?

    假设你有结构用户:

    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,可以按 userID 对数据进行分组:

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

    【讨论】:

    • 亲爱的我不知道 UserID 列数据它可以是任何东西。但它肯定整个数据表将只包含两个 userID。例如,有时 userID 可以是 1 和 2,而其他时候 userID 列将包含数据用户 ID 5 和 6。
    猜你喜欢
    • 1970-01-01
    • 2013-08-09
    • 2019-02-09
    • 1970-01-01
    • 2017-10-24
    • 2015-09-18
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    相关资源
    最近更新 更多