Разделить значения, разделенные запятыми

Я использую 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);

Ответ 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.