יש לי את הקוד הבא שלוקח כל פריט השוואת מסמכים בוורד ועוטף אותו בהשוואות הסמוכות לו. אחרי זה מתבצע linq לגלות איזה סמיכות.
הבעיה היא, שכאשר זה קצת זה עובד בסדר. אבל כשזה הרבה יותר מידי הוא קורס. איך אני יכול להתשמש בכל זאת במנגנון הזה, גם על רשימות גדולות? כמו כן,ש אני רוצה לעמוד על הרשימה הזו, הוא חושב וחושב אבל נופל באמצע. אני מבין שזה קשור איfשהוא למה שדוד.ל.ט כתב כאן פעם שכל LINQ עובד עם yeild ואז באמת הרשימה לא קיימת בזכרון אלא רק מה שצריך. יש אפשרות לקבע את זה שלא יעבוד עם זה ויהיה ליסט רגיל (כמו שאני ניסתי לעשות, עם MSG וכן עם tolist() אבל ללא הצלחה)?
var revisions = doc.Revisions.Cast<word.Revision>().ToList();
var revList = new List<revsInOrder>();
for (int i = 0; i < revisions.Count; i++)
{
word.Revision nxt;
word.Revision pre;
if (i != 0)
{
pre = revisions[i - 1];
}
else
{
pre = null;
}
if (i != revisions.Count - 1)
{
nxt = revisions[i + 1];
}
else
{
nxt = null;
}
revList.Add(new revsInOrder() { prev = pre, next = nxt, current = revisions[i] });
}
var anotherlist = revList.Where(p => (p.next != null && (p.current.Range.End == p.next.Range.Start))).OrderByDescending(p => p.current.Index).ToList();
MessageBox.Show(anotherlist.Count.ToString());
foreach (var item in anotherlist)
{
item.current.Accept();
item.next.Accept();
}
פורסם במקור בפורום CODE613 ב20/08/2017 22:54 (+03:00)