如何清除列表中的某些项目?时间:2019-03-17 标签:c#

发布于 2024-11-15 12:40:53 字数 215 浏览 1 评论 0原文

我有 List 有 5 个条目。 [0],[1],[2],[3],[4].

如果我使用 List.Clear() 所有项目都会被删除。

我需要删除直到特定项目,例如直到[1]。这意味着我的列表中只有 2 项 [0] 和 [1]。用c#怎么做到这一点?

i have List<sting> with 5 entries. [0],[1],[2],[3],[4].

if I use List.Clear() all item are removed.

i need remove till specific item, for example till [1]. that means in my list are just 2 items [0] and [1]. how do that with c#?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

双马尾 2024-11-22 12:40:53

如果要删除index 1之后的所有项目(即只保留前两项):

if (yourList.Count > 2)
    yourList.RemoveRange(2, yourList.Count - 2);

如果需要删除value为“的项目之后的所有项目[1]”,无论其索引如何:

int index = yourList.FindIndex(x => x == "[1]");
if (index >= 0)
    yourList.RemoveRange(index + 1, yourList.Count - index - 1);

If want to remove all items after index 1 (that is, retain only the first two items):

if (yourList.Count > 2)
    yourList.RemoveRange(2, yourList.Count - 2);

If you need to remove all items after the item with a value of "[1]", regardless of its index:

int index = yourList.FindIndex(x => x == "[1]");
if (index >= 0)
    yourList.RemoveRange(index + 1, yourList.Count - index - 1);
谎言月老 2024-11-22 12:40:53

您可以使用GetRange 方法

所以..

myList = myList.GetRange(0,2);

..会给你你上面所要求的。

You can use the GetRange method.

So..

myList = myList.GetRange(0,2);

..would give you what you are asking for above.

小霸王臭丫头 2024-11-22 12:40:53

您可以使用 List.RemoveWhere(Predicate).. 或者,您可以执行 for 循环 - 向后循环,删除项目直到您所在的项目,即

for(var i = List.Count()-1; i>=0; i--) {
   var item = List[i];
   if (item != "itemThatYourLookingFor") {
      List.Remove(item);
      continue;
   }
   break;
}

You can use the List.RemoveWhere(Predicate).. Alternatively, you can do a for loop - looping backwards, removing items till the item you're after ie

for(var i = List.Count()-1; i>=0; i--) {
   var item = List[i];
   if (item != "itemThatYourLookingFor") {
      List.Remove(item);
      continue;
   }
   break;
}
﹏半生如梦愿梦如真 2024-11-22 12:40:53
List<string> strings = new List<string>{"a", "b", "c", "d", "e"};
List<string> firstTwoStrings = strings.Take(2).ToList();
// firstTwoStrings  contains {"a", "b"}

Take(int count) 方法将给你留下计数项目。

List<string> strings = new List<string>{"a", "b", "c", "d", "e"};
List<string> firstTwoStrings = strings.Take(2).ToList();
// firstTwoStrings  contains {"a", "b"}

The Take(int count) method will leave you with count items.

快乐很简单 2024-11-22 12:40:53

您可以从列表中删除范围,给出起始索引和要删除的项目数。

var items = new List<string> {"0", "1", "2", "3", "4", "5"};
var index = items.IndexOf("1") + 1;

if (index >= 0)
{
    items.RemoveRange(index, items.Count - index);
}

You can remove a range from a list, giving the starting index and the number of items to remove.

var items = new List<string> {"0", "1", "2", "3", "4", "5"};
var index = items.IndexOf("1") + 1;

if (index >= 0)
{
    items.RemoveRange(index, items.Count - index);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文