【发布时间】:2023-03-21 06:29:01
【问题描述】:
我有一个字符列表:
var myList = new List<char>(new[] { 'x', 'y', '(', 'a', 'b', 'c', ')', 'z' });
使用值:
'x'
'y'
'('
'a'
'b'
'c'
')'
'z'
如何获取大括号之间的所有值?新列表中的值应如下所示:
'a'
'b'
'c'
列表中大括号的索引可以在每个会话中更改。
【问题讨论】:
-
您应该尝试做的第一件事是使用
forloop 来充实这一点,这是一个很棒的角色塑造学习体验,会给您带来成就感。但是,您也可以将其转换为字符串并使用正则表达式,您可以使用 IndexOf 和各种各样的东西。但是就目前而言,这个问题表明缺乏研究 -
到目前为止你尝试了什么?
-
我尝试使用
IndexOf方法获取列表中第一个和第二个大括号的索引,然后使用Take方法获取该索引之间的所有值。我希望有一些更简单的方法,例如使用 linq。 -
列表不保证它们包含的数据发生变化时的顺序。
-
100% 正确。这是
List<T>后面的source code。是的,它了解索引:public T this[int index] {。但是因为它允许插入和删除,所以它保证没有顺序。如果您的代码依赖于 List 被订购。您要么明确排序,要么使用IOrderedEnumerable或SortedList。