首页 > 解决方案 > 在streamreader c#中按过滤器搜索

问题描述

我想通过过滤这个数据网格视图来搜索我已经搜索了很多时间来寻找一种方法,但是我发现的解决方案中没有一个可以与我的代码一起使用(这是我用来加载数据网格视图的代码)

static public string APP_FOLDER = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Tools/Admin Tool/");
public string fileItem = ("Item.txt");

public class itemInterface
{
    public string Code { get; set; }
    public string Item { get; set; }

    public itemInterface(string key, string value)
    {
        Code = key;
        Item = value;
    }
    public itemInterface(string[] value)
    {
        Code = value[0];
        Item = value[1];
    }
}

static public void UpdateItemDataGridView(DataGridView dgv, List<itemInterface> pList)
{
    dgv.ColumnHeadersVisible = false;
    dgv.DataSource = pList;
    dgv.Columns[0].Width = 70;
    dgv.ColumnHeadersVisible = true;
}

private void Form1_Load(object sender, EventArgs e)
{
    List<itemInterface> pList = new List<itemInterface>();
    using (StreamReader sr = new StreamReader(APP_FOLDER + fileItem, Encoding.UTF8, true))
    {
        string s = String.Empty;
        while ((s = sr.ReadLine()) != null)
        {
            itemInterface l = new itemInterface(s.Split('\t'));
            pList.Add(l);
        }
    }
    UpdateItemDataGridView(dataGridView2, pList);
} 

标签: c#searchdatagridviewstreamreader

解决方案


我对搜索代码的方式进行了罚款

 List<itemInterface> pList = new List<itemInterface>();
    using (StreamReader sr = new StreamReader(APP_FOLDER + fileItem, Encoding.UTF8, true))
    {
        string s = String.Empty;
        while ((s = sr.ReadLine()) != null)
        {
            itemInterface l = new itemInterface(s.Split('\t'));

            pList.Add(l);

        }
    }

    var pSearch = pList.FindAll(i => i.Item.ToLower().Contains(textBox12.Text.ToLower()));
    UpdateItemDataGridView(dataGridView2, pSearch);

推荐阅读