it-swarm.dev

تقسيم القيم مفصولة بفواصل

أنا أستخدم Visual Studio 2005 و C # 2.0 ، وأحاول تقسيم سلسلة مفصولة بفواصل باستخدام الدالة string.Split وتعبير lambda كما يلي:

string s = "a,b, b, c";
string[] values = s.Split(',').Select(sValue => sValue.Trim()).ToArray();

تظهر لي رسالة تفيد بأنه لم يتم التعرف على التعبير - كيف يمكنني حل هذا؟

20
user1292656

.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();
}
32
Jon G

لا يستخدم .NET 2.0 التعبيرات lambda. تحتاج إلى ترجمة إلى .NET 3.0 لاستخدامها.

10
basher

وهناك طريقة للقيام بذلك دون Linq & Lambdas

string source = "a,b, b, c";
string[] items = source.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
4
Cybermaxs

لم يتم تضمين التعبير Lambda في c # 2.0

ربما يمكنك الرجوع إلى هذا المنشور هنا على SO

2
Rémi

تقسيم قيمة مربع نص مفصولة بفاصلة وحساب العدد الإجمالي للقيم في النص والقيم المجزأة معروضة في 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";
        }
    }
2
Mahesh Kumar Rajput

يمكنك استخدام LINQBridge (MIT Licensed) لإضافة دعم لتعبيرات lambda إلى C # 2.0:

باستخدام الاستهداف المتعدد و LINQBridge الخاص بـ Studio ، ستتمكن من كتابة استعلامات محلية (LINQ إلى كائنات) باستخدام القوة الكاملة لبرنامج التحويل البرمجي C # 3.0 - ومع ذلك ، ستتطلب برامجك فقط الإصدار 2.0 من Framework.

0
Ryan Weir