日期:2014-05-18  浏览次数:21054 次

请高手帮我看看这个程序的错误的地方怎么改
private void Form1_TextChanged(object sender, EventArgs e)
  {
  string[] strArray = new string[] { "XXXX", "XXX", "XXXX", "XXXX" };
  if (textBox1.Text != string.Empty)
  {
  string[] strTemp = Array.FindAll<string>( strArray, Predicate<string> strArray[i].Contains(textBox1.Text)); if (strTemp.Length > 0)
  {
  textBox2.Clear();
  foreach (string s in strTemp)
  {
  textBox2.Text += s + Environment.NewLine;
  }
  }
  else
  {
  textBox2.Clear();
  textBox2.Text = "没有找到记录";
  }
  }
  else
  {
  textBox2.Clear();
  }
  }
首先我先说下程序要实现的结果:就是在textbox1里输入字符,如果数组里有包含textbox1.text的就显示在textbox2里
这段程序一直提示-----无效的表达式项“string”,就是红色的这一句,这句的格式是我在msdn上找的,为什么会出错呢,哪位帮忙解释一下,应该怎么改;
下面附上msdn里Array的FindAll方法的格式:

public static T[] FindAll<T>(
T[] array,
Predicate<T> match
)

 

类型参数
T
数组元素的类型。


参数
array类型:T()
要搜索的从零开始的一维 Array。
match类型:System.Predicate(Of T)
Predicate(Of T),定义要搜索的元素的条件。


返回值
类型:T()
如果找到一个其中所有元素均与指定谓词定义的条件匹配的 Array,则为该数组;否则为一个空 Array。


------解决方案--------------------
string[] strTemp = Array.FindAll<string>( strArray => strArray[i].Contains(textBox1.Text));
------解决方案--------------------
C# code
string[] strTemp = Array.FindAll<string>(strArray, str => str.Contains(textBox1.Text));