【c# – 如何进行递归LINQ查询?】教程文章相关的互联网学习教程文章

c#-类之间的递归依赖导致System.StackOverflow异常【代码】

我在应用程序中将存储库模式与服务层一起使用.为了遵循最佳实践,我正在为每个回购创建服务. 我的两项服务相互依赖.我需要从其他服务的每个服务中至少调用一个方法. 我正在使用依赖项注入来解决这些依赖项.看来问题出在以下方面: > A类取决于B类> B级取决于A级 我的DI容器解决了上述所有问题. 我打电话给Class A,然后注入了Class B的实例… 这导致容器为类B创建一个新的类A实例. 依次为B类注入新的A类…依此类推… 我认为这是我的基...

使用C#从Azure文件存储中递归获取文件【代码】

我想编写一个程序从azure文件存储中获取文件,但是问题是未定义目录深度,并且文件的isFile属性始终返回false.using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using Microsoft.Azure; // Namespace for Azure Configuration Manager using Microsoft.WindowsAzure.Storage; // Namespace for Storage Client Library using Microsoft.Wind...

C# 使用递归获取所有下属、所有子部门……【代码】【图】

本例中获取的是所有的晚辈!首先定义家庭成员类: public class FamilyMember{/// <summary>/// 身份/// </summary>public string identity { get; set; }public int level { get; set; }/// <summary>/// 父亲/// </summary>public string father { get; set; }}然后,定义递归方法: /// <summary>/// 递归获取晚辈/// </summary>/// <param name="members"></param>/// <param name="m"></param>/// <returns></retur...

c# 字符串递归截取

private void button1_Click_1(object sender, EventArgs e){string ex = neirong.Text;List<string> d = new List<string>();getlist(ex,ref d);var ss = d;}private void getlist(string strs,ref List<string> d){if (strs.Length > 290){string sy = "";string zj = strs.Substring(0, 290);int djindex = zj.LastIndexOf(。);d.Add(strs.Substring(0, djindex));sy = strs.Remove(0, djindex);getlist(sy, ref d);}else{d.Add...

道格拉斯矢量曲线抽稀算法C#语言非递归实现【代码】【图】

道格拉斯矢量曲线抽稀算法C#语言非递归实现 1. 道格拉斯-普克算法简介道格拉斯-普克算法(Douglas–Peucker algorithm,亦称为拉默-道格拉斯-普克算法、迭代适应点算法、分裂与合并算法)是将曲线近似表示为一系列点,并减少点的数量的一种算法。该算法的原始类型分别由乌尔斯拉默(Urs Ramer)于1972年以及大卫道格拉斯(David Douglas)和托马斯普克(Thomas Peucker)于1973年提出,并在之后的数十年中由其他学者予以完善。经典的...

C#和递归算法实现删除,清空,拷贝目录【代码】

使用递归算法,实现删除,清空,拷贝一个文件夹。using System.IO;namespace FileManagement {public class MyFileManager{/// <summary>/// 删除一个目录(空或非空)/// 1.先删除该目录下的所有文件/// 2.再删除该目录下的所有子孙目录/// 3.最后删除该目录(已成为空目录)/// </summary>/// <param name="dirName">目录名</param>public static void RemoveDir(string dirName){if (!Directory.Exists(dirName)){return;}strin...

c# – 返回最小除数的递归函数【代码】

我写了一个函数,递归计算整数n> 1的最小除数:using System; public class Program {public static void Main(){int n = Convert.ToInt32(Console.ReadLine());Console.WriteLine(SmallestDivisor(n));}public static int SmallestDivisor(int n){return SmallestDivisor(n, 2);}public static int SmallestDivisor(int n, int d){if (n%d == 0)return d;else return SmallestDivisor(n, d+1);} }我的目标是构...

C#:如何使这个方法非递归【代码】

我有这个递归方法删除空文件夹:private void DeleteEmpty(DirectoryInfo directory){foreach (var d in directory.GetDirectories()){DeleteEmpty(d);}if (directory.GetFileSystemInfos().Length == 0){try{directory.Delete();}catch (Exception){// Already gone, no permission, not empty, et cetera}}}如何重构此方法以使其不是递归的?解决方法:标准重构是存储您将以LIFO(即堆栈)或FIFO队列传递给函数的数据.请注意,这不会...

如何使用递归在C#中获得硬币更改问题的最小可能组合【代码】

我是C#的新手,我有一个要解决的递归问题.我希望在这个硬币更换问题中获得最少数量的硬币.我已经为它调整了算法,但我需要返回一个类型为Change的对象,它将包含最小可能的组合. 我试图实现一个算法,但我有所有可能的组合.using System; using System.Collections.Generic; using System.Linq;// Do not modify change class Change {public long coin2 = 0;public long bill5 = 0;public long bill10 = 0; }class Solution {// Do no...

c# – 使用递归从IDictionary中删除项目【代码】

有人有一个更光滑的方式来做到这一点?看起来它应该比这更容易,但我有心理障碍.基本上我需要从字典中删除项目并递归到也是字典的项目的值.private void RemoveNotPermittedItems(ActionDictionary menu) {var keysToRemove = new List<string>();foreach (var item in menu){if (!GetIsPermitted(item.Value.Call)){keysToRemove.Add(item.Key);}else if (item.Value is ActionDictionary){RemoveNotPermittedItems((ActionDiction...

如何退出具有返回类型的C#递归方法【代码】

我的代码如下所示,public object GetObjectValue(object obj, int condition) {if(condition > 10){//exit from method // return; gives compiler error. }else{GetObjectValue(obj,condition); // like this i need to use recursive call.//Do stuffs} }如何退出此方法.帮我.解决方法:一些要点: >在任何一种情况下你都需要返回一些东西.即使你在if(condition> 10)上返回null,你的下一个编译错误也会说你需要在每个路径上返...

具有可选参数的C#递归函数【代码】

我在递归函数上遇到可选参数问题 这是一个示例代码:private static void RecursiveFunction(int x, int optional = 0) {if (x < 5)RecursiveFunction(x + 1, optional++); }调用函数时:RecursiveFunction(0);我得到了以下结果(只需在即时窗口中调用此代码string.Format(“{0} – {1}”,x,可选):"0 - 0" "1 - 0" "2 - 0" "3 - 0" "4 - 0"我在这里错过了什么吗?谢谢!解决方法:改变自:RecursiveFunction(x + 1, optional++); ...

C# – 1 2 4 8 16 32 64 … series – 根据输入数字,递归函数查找索引?【代码】

我有一系列的数字:[1 2 4 8 16 32 64 128],如果我输入一个数字,即66,那么输出应该是64和2.如果我输入87,那么输出应该是64, 16,4,2,1. (基本上,它首先除以最大可能的数字,找到余数,然后继续除以可能的最大数,直到余数为0.或者另一种方式可能只是减去最大可能的数字并继续减去它直到达到0) 我正在考虑一个递归函数,但不是很确定.有帮助吗? 谢谢.解决方法:这是迭代版本public static IEnumerable<int> FindIndex(int input) {var po...

c# – 递归函数堆栈无处不在地共享一个变量【代码】

我试图制作一个程序,使用回溯在迷宫中找到哈密顿路径.它应该返回编号为迷宫的迷宫上的路径.问题是当一个堆栈倒退时,其中一个变量(它是迷宫的表示)从调用继承,而其他变量(即使它们以相同的方式被声明),也不会(这很好).我尝试了几个解决方法,包括通过创建一个单独的类来实例化,我包含了调试消息.这是代码,有一些注释可以提供帮助.using System;namespace ConsoleApplication1 {//I made a separate class for the functionclass btr{...

c# – 是否有一种较少递归的格式化数字方式?【代码】

是否有C#等效的C流操纵器?例如int decimalPlaces = 2; double pi = 3.14159; cout.precision(decimalPlaces); cout << pi;将数字格式化为字符串以将数字格式化为字符串感觉很奇怪.例如int decimalPlaces = 2; double pi = 3.14159; string format = "N" + decimalPlaces.ToString(); pi.ToString(format);它是如何在C#中完成的,还是我错过了什么?解决方法:我会略微缩小它:int decimalPlaces = 2; double pi = 3.14159; pi.ToStr...