数组比较,继续求解
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;
}
}
}