带有数据集c#asp net的数据行筛选数组

带有数据集c#asp net的数据行筛选数组,c#,asp.net,.net,arrays,dataview,C#,Asp.net,.net,Arrays,Dataview,我有一个operators页面,它有两个包含数据库数据的表,一个包含现有运算符的表和一个包含现有用户的表。如果用户已经是操作员,我希望该行隐藏在表中。这是我的密码: C#: var userDetailsList=new List(); TellusAPI.telluserdetails用户详细信息; var operators=\u administrationSystem.GetOperatorsInformation(userId)//数据集 var getUser=webSearch.D

我有一个operators页面,它有两个包含数据库数据的表,一个包含现有运算符的表和一个包含现有用户的表。如果用户已经是操作员,我希望该行隐藏在表中。这是我的密码:

C#:

var userDetailsList=new List();
TellusAPI.telluserdetails用户详细信息;
var operators=\u administrationSystem.GetOperatorsInformation(userId)//数据集
var getUser=webSearch.DoSearchForNameAndNumber(userId,txtSearchForOperator.Text,false,“,”,false,false,out userDetails)//大堆
if(getUser==null)
{
添加(新联系人部分(userDetails));
rptAdd.DataSource=null;
}
其他的
{
userDetailsList=getUser.Select(x=>newcontactpartial(x)).ToList();
var dv=新的数据视图(operators.Tables[0]);
foreach(userDetailsList中的var运算符)
{
如果(!userDetailsList.Contains(Operator))继续;
dv.RowFilter=“ID=”+运算符.ID;
}
rptAdd.DataSource=userDetailsList;//转发器
}
类别:

/// <summary>
/// Class for converting.
/// </summary>
public class ContactPartial
{
    public long Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string CompanyName { get; set; }
    public string Email { get; set; }

    public ContactPartial(TellusUserDetails tud)
    {
        if (tud == null)
        {
            return;
        }

        Id = tud.UserID;
        FirstName = tud.FirstName;
        LastName = tud.LastName;
        CompanyName = tud.Organisation.Description;
        Email = tud.Email;
    }

    public ContactPartial(TellusSearchUserInfo tsi)
    {
        if (tsi == null)
        {
            return;
        }

        Id = tsi.ID;
        FirstName = tsi.FirstName;
        LastName = tsi.LastName;
        CompanyName = tsi.CompanyName;
        Email = tsi.Email;
    }
}
//
///用于转换的类。
/// 
公共类联系人部分
{
公共长Id{get;set;}
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共字符串CompanyName{get;set;}
公共字符串电子邮件{get;set;}
公共联系人部分(TelluserDetails tud)
{
if(tud==null)
{
回来
}
Id=tud.UserID;
FirstName=tud.FirstName;
LastName=tud.LastName;
CompanyName=tud.organization.Description;
Email=tud.Email;
}
公共联系人部分(TellusSearchUserInfo tsi)
{
如果(tsi==null)
{
回来
}
Id=tsi.Id;
FirstName=tsi.FirstName;
LastName=tsi.LastName;
CompanyName=tsi.CompanyName;
Email=tsi.Email;
}
}
所以我现在比较这两个并过滤ID为的行,但它仍然读取所有行

        foreach (var Operator in userDetailsList) ******
        {
            if (!userDetailsList.Contains(Operator)) continue;
            dv.RowFilter = "ID = " + Operator.Id;
        }
我发现命名约定有一些问题。。您应该正确地通知什么是操作员,什么是用户详细信息对象。不要把它们混在一起

        foreach (var user in userDetailsList)
        {
            // Since dv is the one which contain operator details
           if (dv.Select("ID= '" + user.Id + "'").Count > 0)
           {
            dv.RowFilter = "ID = " + user.Id;
           }
        }

您能否在代码中提供一些示例数据和预期结果,以及关于哪一行做什么和不做什么的一些解释?预期结果是,当您在数据库中搜索用户时,您希望筛选出operators表中已经包含的用户。我有应该知道的ID。@ChetanRanpariya请阅读评论。是的,您的代码不正确,我不能使用
dv。Select
,因为IntelliSense中没有为
DataView
选择。您可以使用dv.Table.Select
        foreach (var user in userDetailsList)
        {
            // Since dv is the one which contain operator details
           if (dv.Select("ID= '" + user.Id + "'").Count > 0)
           {
            dv.RowFilter = "ID = " + user.Id;
           }
        }