现在在form1上有N个文本框,每个文本框的内容手动输入,求一算法,判断文本框内容是否为空,然后将不为空的几个文本框内容做交集后输出,难点是不限制文本框N的个数

解决方案 »

  1.   


    List<string> list=new List<string>();
    foreach (Control cl in Controls)
    {
        if (cl is TexBox)
        {
            if (!String.IsNullOrEmpty(((TexBox)cl).Text))
            {
               list.Add(c.Text.ToString());
            }
        }
    }
    取交集自己处理
      

  2.   

    list.Distinct();//得到并集
    全集-并集=补集;全集-补集=交集
      

  3.   

    等等 、、 楼主的所说的交集是啥意思?、、
    “ABC”  “BCA”  交集是BC?
    那“ABCDE”  “BDEF”的交集是啥?、、BDE?、
    至于你的那个不知道 N 有多少个 一楼说的很清楚
      

  4.   

    谢谢楼上几位大哥,尤其是2楼大哥,我说的交集是如下意思:
    比如有5个文本框A、B、C、D、E,分别是算法程序a、b、c、d、e所需的输入值,现在首先需判断5个文本框A、B、C、D、E哪几个不为空,比如判断结果文本框A、B、C不为空,即都有输入,那此时其对应的算法a、b、c就会有结果输出,对其输出结果做交集,比如
    a输出:123,234,456,567
    b输出:012,123,345,456
    c输出:012,123,234,456
    则最后输出结果为:123,456个人觉得算法难点在于根据判断哪几个文本框有输入而使得相应的算法做交集,而不会出现由于和输入为空的算法做了交集输出为空的情况,谢谢继续探讨!
      

  5.   

    TextBox[] textboxs = new TextBox[] { A, B, C, D, E };
    var result = textboxs.SelectMany(x => x.Text.Split(',')).Distinct();
    textboxs.Where(x => x.Text != "").ToList().ForEach(x => result = result.Where(y => x.Text.Split(',').Contains(y)));