将数据集过滤为两部分

时间:2014-12-22 11:07:38

标签: c# filter dataset

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

                          UserID  int,document nvarchar(100)

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

1 个答案:

答案 0 :(得分:0)

您是否希望按特定科目过滤列表?

假设你有结构用户:

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