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的数据。