c# 我有一个复数的对象集合,里面存放在["a","b","c","d","e","f',"g"],我想要通过一个字符串cde获取到我数组里的["c","d","e"]的元素,且我字符串的顺序一定要和我数组元素的顺序完全一致,然后替换数组里的元素值为[1,2,3],怎么实现
时间: 2023-07-19 17:43:40 浏览: 109
您可以使用 `List.IndexOf` 方法和 `List.GetRange` 方法来实现此功能。以下是一个示例代码:
```csharp
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
List<string> list = new List<string> { "a", "b", "c", "d", "e", "f", "g" };
string str = "cde";
List<int> newValues = new List<int> { 1, 2, 3 };
int startIndex = list.IndexOf(str[0].ToString());
int endIndex = list.IndexOf(str[str.Length - 1].ToString()) + 1;
if (startIndex >= 0 && endIndex > startIndex)
{
List<string> range = list.GetRange(startIndex, endIndex - startIndex);
if (string.Concat(range) == str)
{
for (int i = 0; i < range.Count; i++)
{
list[startIndex + i] = newValues[i].ToString();
}
}
}
foreach (var item in list)
{
Console.WriteLine(item);
}
Console.ReadLine();
}
}
```
这个代码会先找到目标字符串在集合中的起始索引和结束索引,然后使用 `List.GetRange` 方法获取到目标字符串对应的集合片段。如果该片段与目标字符串完全一致,就使用 `for` 循环将其替换为新值。最后,代码会遍历整个集合并输出每个元素。
阅读全文