Разделить значения, разделенные запятыми
Я использую Visual Studio 2005 и С# 2.0, и я пытаюсь разделить строку, разделенную запятыми, с помощью функции string.Split
и выражения лямбда следующим образом:
string s = "a,b, b, c";
string[] values = s.Split(',').Select(sValue => sValue.Trim()).ToArray();
Я получаю сообщение об ошибке, что выражение не распознается - как я могу это решить?
Ответы
Ответ 1
.NET 2.0 не поддерживает LINQ - поток SO
Но вы можете создать проект 3.5 в VS2005 - поток MSDN
Без поддержки лямбда вам нужно сделать что-то вроде этого:
string s = "a,b, b, c";
string[] values = s.Split(',');
for(int i = 0; i < values.Length; i++)
{
values[i] = values[i].Trim();
}
Ответ 2
.NET 2.0 не использует лямбда-выражения. Вам необходимо скомпилировать .NET 3.0, чтобы использовать их.
Ответ 3
Способ сделать это без Linq и Lambdas
string source = "a,b, b, c";
string[] items = source.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
Ответ 4
Выражение Lamba не включено в С# 2.0
возможно, вы могли бы ссылаться на этот пост здесь в формате SO
Ответ 5
Разделите значение текстового поля, разделенное запятой, и подсчитайте общее количество значений в тексте, а разделенные значения показаны в 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";
}
}
Ответ 6
Вы можете использовать LINQBridge (лицензия MIT), чтобы добавить поддержку лямбда-выражений к С# 2.0:
С помощью мультитаргетинга Studio и LINQBridge вы сможете писать локальные запросы (LINQ to Objects) с использованием полной мощности С# 3.0 компилятор, и все же ваши программы потребуют только Framework 2.0.