פורסם 2012 במרץ 2913 שנים יש לי רשימה של "הגדרות" שבנויות בצורה הבאה:key:'property'key:'property'key:'property'key:'property'key:'property'... אני מחפש להפריד את ההגדרות עם key מסויים (יש לי ברשימה כמה עם אותו key וה property משתנה בינהם) ולהכניס את ה property שלהם לתוך מערך סטרינג.ניסיתי להשתמש בביטוי רגולרי, אבל אני ממש בור בקטע הזה ולא הולך לי.לא עולה לי בראש דרך פשוטה לבצע זאת, אז אני אשמח לעזרה.
פורסם 2012 במרץ 2913 שנים הרשימה הזו נתונה כמחרוזת אחת ארוכה?קודם כל אתה יכול לפצל אותה למערך של מחרוזות באמצעות הפונקציה String.Split (כל שורה תהיה איבר במערך), ולאחר מכן לנתח כל שורה באופן עצמאי (לדוגמה לחפש את הנקודתיים ולפצל לפיהן).גם באמצעות ביטויים רגולרים זה די פשוט, רק צריך לדעת איך להשתמש בהם.... יש הרבה מדריכים ברשת, כגון:http://www.regular-expressions.info/tutorial.htmlhttp://msdn.microsoft.com/en-us/library/ms228595%28v=vs.80%29.aspx
פורסם 2012 במרץ 2913 שנים מחבר בשעה טובה הסתדרתי...זה מה שעשיתי:string[] pairs = input.Split(new string[] { Environment.NewLine},StringSplitOptions.None); List<string> aa = pairs.ToList(); aa.RemoveAt(0); //באיבר הראשון אין שום דבר שאני צריך foreach (string pair in aa) { string[] paramvalue = pair.Split(':'); Console.WriteLine(paramvalue[0]); if (paramvalue[0] == key){ valuesArray.Add(paramvalue[1]); } }והאמת שעכשיו שאני חושב על זה, אני יכול גם להסתדר בלי להוריד את האיבר הראשון מהמערך של ה pairs
פורסם 2012 במרץ 2913 שנים פשוט ולעניין. אם אתה עובד בדוטנט 3.5 ומעלה יכלת גם לוותר על המרת המערך לרשימה, ואז לדלג על האיבר הראשון באמצעות Skip, דהיינו: string[] pairs = input.Split(new string[] { Environment.NewLine},StringSplitOptions.None); foreach (string pair in pairs.Skip(1)) { string[] paramvalue = pair.Split(':'); Console.WriteLine(paramvalue[0]); if (paramvalue[0] == key){ valuesArray.Add(paramvalue[1]); } }
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.