gpt4 book ai didi

c# - 如何获取字符串的中间部分?

转载 作者:太空狗 更新时间:2023-10-30 00:53:30 29 4
gpt4 key购买 nike

我有一个字符串如下

var input= "dbo.xyx.v1.UserDefinedFunction";

所需的输出将是“xyx.v1”;

我的尝试是

var input = "dbo.xyx.v1.UserDefinedFunction";
var intermediate = input.Split('.').Skip(1);
var res = intermediate.Reverse().Skip(1).Aggregate((a, b) => b + "." + a);

工作正常..但是还有其他合适且优雅的方法吗?

请注意,它可以是任何部分(在我刚刚展示的例子中是 4 个部分)

例如输入:“dbo.part1.part2.part3.part4.UserDefinedFunction”输出:“part1.part2.part3.part4”

最佳答案

这总是返回一个字符串的中间部分,它可以是一个或两个部分(根据总部分数)。

var input = "dbo.xyx.v1.UserDefinedFunction";
string[] tokens = input.Split('.');
int midIndex = (tokens.Length - 1) / 2;
IEnumerable<int> midIndices = midIndex % 2 == 0
? new[] { midIndex }
: new[] { midIndex, midIndex + 1 };
string mid = string.Join(".", tokens.Where((t, i) => midIndices.Contains(i)));

Demo

所以在这种情况下它返回 xyx.v1,对于字符串 bo.xyx.v1 它返回 v1 因为这是唯一的中间值-部分。

关于c# - 如何获取字符串的中间部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16212478/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com