我正在使用Visual Studio 2005和C#2.0,我正在尝试使用string.Split
函数和lambda表达式拆分逗号分隔的字符串,如下所示:
string s = "a,b, b, c";
string[] values = s.Split(',').Select(sValue => sValue.Trim()).ToArray();
我收到错误消息,表示无法识别表达式 - 我该如何解决?
答案 0 :(得分:34)
.NET 2.0不支持LINQ - SO thread;
但您可以在VS2005中创建一个3.5项目 - MSDN thread
如果没有lambda支持,您需要执行以下操作:
string s = "a,b, b, c";
string[] values = s.Split(',');
for(int i = 0; i < values.Length; i++)
{
values[i] = values[i].Trim();
}
答案 1 :(得分:10)
.NET 2.0不使用lambda表达式。您需要编译到.NET 3.0才能使用它们。
答案 2 :(得分:4)
没有Linq&amp; amp; lambda表达式
string source = "a,b, b, c";
string[] items = source.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
答案 3 :(得分:2)
Lambda表达式不包含在c#2.0
中也许您可以参考this post here on SO
答案 4 :(得分:2)
拆分以逗号分隔的文本框值,并计算文本中的值总数,并在ritchTextBox中显示拆分值。
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "";
richTextBox1.Text = "";
string strText = textBox1.Text.Trim();
string[] strArr = strText.Split(',');
int count = 0;
for (int i = 0; i < strArr.Length; i++)
{
count++;
}
label1.Text = Convert.ToString(count);
for (int i = 0; i < strArr.Length; i++)
{
richTextBox1.Text += strArr[i].Trim() + "\n";
}
}
答案 5 :(得分:0)
您可以使用LINQBridge(MIT Licensed)将对lambda表达式的支持添加到C#2.0:
使用Studio的多目标和LINQBridge,您将能够编写 本地(LINQ to Objects)查询使用C#3.0的全部功能 编译器 - 但你的程序只需要Framework 2.0。