c# – 如何控制台.Writeline IEnumerable <(int a,int b,int c)>?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 如何控制台.Writeline IEnumerable <(int a,int b,int c)>?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1756字,纯文字阅读大概需要3分钟。
内容图文
![c# – 如何控制台.Writeline IEnumerable <(int a,int b,int c)>?](/upload/InfoBanner/zyjiaocheng/812/b64461fbda554b6c873e3dc9bf3033ce.jpg)
我正在完成一些计算机科学练习,我很尴尬地说我不知道??如何在VS Studio中控制打印上述代码.我已经尝试了好几天了,我的部分问题是我实际上并不知道上面提到的结构的名称(比喻说).我完成了我的作业,阅读了手册,但现在没有什么可做的,只是举起手来问问题.在线似乎有很多使用IEnumerable< int>的例子.但没有输出我能找到的元组.发布任何示例代码将不胜感激.
public static class PythagoreanTriplet
{
public static IEnumerable<(int a, int b, int c)> TripletsWithSum(int sum)
{
return Enumerable.Range(1, sum - 1)
.SelectMany(a => Enumerable.Range(a + 1, sum - a - 1)
.Select(b => (a: a, b:b, c: sum - a - b)))
.Where( x => x.a * x.a + x.b * x.b == x.c * x.c);
}
}
public static class testclass
{
public static void Main()
{
int input = 121;
var data = PythagoreanTriplet.TripletsWithSum(input);
Console.WriteLine(data);
}
}
输出:
System.Collections.Generic.List`1[System.ValueTuple`3[System.Int32,System.Int32,System.Int32]]
解决方法:
您必须将元组分解为其部分:
public static void Main()
{
int input = 121;
var data = PythagoreanTriplet.TripletsWithSum(input);
foreach(var d in data)
Console.WriteLine($"{d.a} {d.b} {d.c}");
}
原因是Tuple类没有覆盖ToString函数,因此输出类的名称而不是组成元组的部分.您需要为解决方案提供一种方法,将自定义元组转换为字符串以供使用.
另一种选择是创建一个类型,表示您在TripletsWithSum中投射并返回的数据,它可以根据您的需要覆盖ToString函数.
public class Tuple3Int : Tuple<int, int, int>
{
public Tuple3Int(int a, int b, int c) : base(a, b, c) { }
public override string ToString()
{
return $"{Item1} {Item2} {Item3}";
}
}
public static IEnumerable<Tuple3Int> TripletsWithSum(int sum)
{
return Enumerable.Range(1, sum - 1)
.SelectMany(a => Enumerable.Range(a + 1, sum - a - 1)
.Select(b => new Tuple3Int(a, b, sum - a - b)))
.Where(x => x.Item1 * x.Item1 + x.Item2 * x.Item2 == x.Item3 * x.Item3);
}
内容总结
以上是互联网集市为您收集整理的c# – 如何控制台.Writeline IEnumerable <(int a,int b,int c)>?全部内容,希望文章能够帮你解决c# – 如何控制台.Writeline IEnumerable <(int a,int b,int c)>?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。