Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Примеры удаления списка из списка:
- /*Объявляем наши списки*/
- var ListToDelete = project.Lists["Мой зенно список который нужно удалить"];
- var ListFromWhichToRemove = project.Lists["Мой зенно список из которого нужно удалить элементы другого списка"];
- /*Удалить список из списка (все точные совпадения).*/
- lock (SyncObjects.ListSyncer)
- {
- for (int i = 0; i < ListToDelete.Count; i++)
- {
- if (i == ListToDelete.Count || ListToDelete.Count == 0) break;
- for (int f = 0; f < ListFromWhichToRemove.Count;)
- {
- if (f == ListFromWhichToRemove.Count || ListFromWhichToRemove.Count == 0) break;
- if (ListFromWhichToRemove[f].Equals(ListToDelete[i], StringComparison.Ordinal))
- {
- ListFromWhichToRemove.RemoveAt(f);
- }
- else
- {
- f++;
- }
- }
- }
- }
- /*При первом варианте (Equals и параметре StringComparison.Ordinal) удаляться будет так, на простом примере:
- Условие: "ля" - текст, который удаляем;
- "ля" - удалится;
- "Ля" - не удалится;
- "ля-ля" - не удалится;
- "ля-ля-ля" - не удалится;
- "бе" - не удалится;
- "бе-бе" - не удалится;
- ------------------------------------------------------------------------*/
- /*Удалить список из списка (все совпадения которые содержат заданный текста).*/
- lock (SyncObjects.ListSyncer)
- {
- for (int i = 0; i < ListToDelete.Count; i++)
- {
- if (i == ListToDelete.Count || ListToDelete.Count == 0) break;
- for (int f = 0; f < ListFromWhichToRemove.Count;)
- {
- if (f == ListFromWhichToRemove.Count || ListFromWhichToRemove.Count == 0) break;
- if (ListFromWhichToRemove[f].Contains(ListToDelete[i]))
- {
- ListFromWhichToRemove.RemoveAt(f);
- }
- else
- {
- f++;
- }
- }
- }
- }
- /*При втором варианте (Contains) удаляться будет так, на простом примере:
- Условие: "ля" - текст, который удаляем;
- "ля" - удалится;
- "ля-ля" - удалится;
- "ля-ля-ля" - удалится;
- "бе" - не удалится;
- "бе-бе" - не удалится;
- ------------------------------------------------------------------------*/
- //Для тех, кому пофиг на кодстайл и хочет упростить те два примера выше:
- /*Удалить список из списка (все точные совпадения).*/
- lock (SyncObjects.ListSyncer)
- {
- foreach (var s in ListToDelete)
- {
- for (int i = 0; i < ListFromWhichToRemove.Count;)
- {
- if (i == ListFromWhichToRemove.Count || ListFromWhichToRemove.Count == 0) break;
- if (ListFromWhichToRemove[i].Equals(s, StringComparison.Ordinal)) ListFromWhichToRemove.RemoveAt(i); else i++;
- }
- }
- }
- /*Удалить список из списка (все совпадения которые содержат заданный текста).*/
- lock (SyncObjects.ListSyncer)
- {
- foreach (var s in ListToDelete)
- {
- for (int i = 0; i < ListFromWhichToRemove.Count;)
- {
- if (i == ListFromWhichToRemove.Count || ListFromWhichToRemove.Count == 0) break;
- if (ListFromWhichToRemove[i].Contains(s)) ListFromWhichToRemove.RemoveAt(i); else i++;
- }
- }
- }
Add Comment
Please, Sign In to add comment