gpt4 book ai didi

c# - 如何在没有任何条件语句或运算符的情况下编写条件语句?

转载 作者:太空狗 更新时间:2023-10-30 01:35:57 25 4
gpt4 key购买 nike

我的计算机老师要我编写代​​码来连接两个字符串(以一种奇怪的方式)。代码应该是这样的,如果两个字符串的长度相等,那么输出应该是 (string1 + string2)。否则输出应该是长度更大的字符串。挑战是我不应该使用 if else 语句或 condition?exp1:exp2 。这是我能够想到的(a 和 b 是输入字符串的名称):

int aLen = a.Length;
int bLen = b.Length;
//+1 is added to lengths to prevent divide by zero
int bGreatFlag = ((aLen+1) % (bLen + 1)) / (aLen + 1); //1 if aLen < bLen; 0 Otherwise
int aGreatFlag = ((bLen+1) % (aLen+1)) / (bLen+1); //1 if bLen < aLen; 0 Otherwise
string result = (a + b).Substring((bGreatFlag) * aLen,(aLen + bLen)-(bGreatFlag*aLen)-(aGreatFlag*bLen));

我相信还有另一种方法可以解决我完全缺少的这个问题(可能是内置函数或某些 LINQ?)。任何其他方法或在正确方向上有条件地连接字符串的任何指针都将非常有帮助。谢谢 :) 。如果这个问题的答案非常微不足道,请多多包涵。

最佳答案

既然你被允许使用 LINQ,这里有一个可能的解决方案:

但是将你的字符串放入一个集合中,按字符串的长度对其进行分组,按字符串的长度对结果进行排序,然后取最长字符串的组。由于现在您拥有两个字符串(如果它们长度相等)或更长的字符串的集合,请使用 String.Join 创建该集合的字符串。

剧透(不要错过自己实现的乐趣):

var result = String.Join("", new[]{a, b}.GroupBy(x => x.Length).OrderByDescending(x => x.Key).First().ToArray()) ;

关于c# - 如何在没有任何条件语句或运算符的情况下编写条件语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23804723/

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