标题:数组比较,继续求解
取消只看楼主
urick
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2012-12-6
结帖率:75%
已结贴  问题点数:50 回复次数:2 
数组比较,继续求解
1. 将textbox1-textbox5中的字符组成一个变量数组strs1={a,b,c,d,e};
2. 若常量数组strs2={a1,a2,a3}中的每个元素都存在于strs1中,a1、a2、a3元素所在的文本框背景色变为红色(strs1只包含2个或1个strs2的元素,则该判据失效);
3. 若步骤2的判据生效,则去除strs1中的a1、a2、a3元素,构建一个新的数组newstrs1后,与常量数组strs3={b1,b2}进行比较;若步骤2的判据失效,则将strs1与strs3进行比较;
4. 若数组strs3的每个元素都存在于数组newstrs1或strs1中,则元素所在的文本框背景色变为黄色。




以下是部分源码,但结果与预期不符合,求解,希望可以给出具体源码:


private void button1_Click(object sender, EventArgs e)
        {

            Dictionary<TextBox, string> map = new Dictionary<TextBox, string>();
            List<string> strs1 = new List<string>();
            foreach (Control c in this.Controls)
            {
                if (c is TextBox)
                {
                    map.Add((c as TextBox),(c as TextBox).Text);
                }
            }
            string[] strs2 = { "飞", "行", "器" };
            string[] strs3 = { "飞", "机" };
            foreach (KeyValuePair<TextBox, string> key in map)
            {
                if (strs2.Where(s => s == key.Value).Count() > 0 )
                {
                    key.Key.BackColor = Color.Red;
                }
                if (strs3.Where(s => s == key.Value).Count() > 0)
                {
                    key.Key.BackColor = Color.Yellow;
                }
            }
        }
搜索更多相关主题的帖子: 背景色 文本框 黄色 元素 
2014-11-10 01:56
urick
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2012-12-6
得分:0 
回复 2 楼 afdoa83
后来用了"intersect"和"Except"的方法来实现的

if (map.Values.Intersect(strs1).Distinct().Count() == strs1.Count())
    {
        Change(map, strs1, Color.Yellow);
        string[] strs1 = map.Values.Except(strs1).ToArray();               
    }

现在出现了个问题,实际运用中由于需判定的条件太多,多次"if"、"else if"已经不能满足了

20个"textbox",如何将背景色为Red的文本框筛选出来??组成一个新的数组,来进行其它条件的判定


[ 本帖最后由 urick 于 2014-11-11 21:43 编辑 ]
2014-11-11 21:39
urick
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2012-12-6
得分:0 
问题已解决
2014-11-12 23:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-438356-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.345020 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved