gpt4 book ai didi

c# - 在不使用 string.Join 的情况下加入 string[]

转载 作者:太空狗 更新时间:2023-10-29 21:05:28 25 4
gpt4 key购买 nike

此问题仅用于学术目的。

假设我有以下代码......

var split = line.Split(new[] { ',' }, System.StringSplitOptions.RemoveEmptyEntries);
var elem = new XElement("shop");
elem.SetAttributeValue("name", split.Take(split.Length - 1)); <=====
elem.SetAttributeValue("tin", split.Last());

我希望带箭头的线产生与此相同的结果......

string.Join(string.Empty, split.Take(split.Length - 1));

... 不使用 string.Join

这可能吗?我似乎找不到执行此操作的 LINQ 语句……希望你们都已经知道了!

最佳答案

使用 StringBuilder 实现 O(n) 性能:

split
.Take(split.Length - 1)
.Aggregate(new StringBuilder(), (sb, s) => sb.Append(s)).ToString();

如果目标是避免组合 LINQ 调用和静态方法树的尴尬,那么一个直接的解决方案是扩展方法:

public static string Join(this IEnumerable<string> self, string separator = "")
{
return string.Join(separator, self);
}

然后:

split.Take(split.Length - 1).Join();

我发现这比在复杂的表达式中使用 string.Join 更易读。

关于c# - 在不使用 string.Join 的情况下加入 string[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12714288/

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