草庐IT

c# - 有没有办法在正则表达式中执行动态替换?

有没有办法在C#4.0中使用匹配中包含的文本的函数进行正则表达式替换?在php中有这样的东西:reg_replace('helloworldyay','(?=')\s(?=')',randomfunction('$0'));它为每个匹配项提供独立的结果,并在找到每个匹配项的地方替换它。 最佳答案 参见Regex.Replace具有MatchEvaluator重载的方法。MatchEvaluator是一种您可以指定的方法,用于处理每个单独的匹配项并返回应用作该匹配项的替换文本的内容。例如,这个...Thecatjumpedoverth

c# - 如何解决 Enumerable 和 MoreLINQ 之间不明确的 ZIP 调用?

我遇到了扩展方法解析的问题。LINQ和MoreLINQ包含zip方法,它自4.0版本以来就存在于.NET中,并且始终在MoreLINQ中。图书馆。但是您不能使用带有旧式扩展方法语法的实现之一。所以这段代码不会编译usingMoreLinq;usingSystem.Linq;varstudents=new[]{"Mark","Bob","David"};varcolors=new[]{"Pink","Red","Blue"};students.Zip(colors,(s,c)=>s+c);错误:Thecallisambiguousbetweenthefollowingmethodsorp

c# - 如何实现 StringBuilder 和/或调用 String.FastAllocateString?

我很想知道我是否可以创建一个优化版本的StringBuilder(尝试稍微加快它的速度,因为它目前是我的一个应用程序的瓶颈)。对我来说不幸的是,它似乎利用了我无法使用(或者看起来如此)的“神奇”系统调用。反编译System.Text.StringBuilder的源代码后,我注意到它使用了以下内部(因此无法调用)系统调用:[SecurityCritical][MethodImpl(MethodImplOptions.InternalCall)]internalstaticstringFastAllocateString(intlength);还有这个未记录的属性被大量使用:[ForceT

c# - 解密异常 - 要解密的数据长度无效

我在C#应用程序中工作。我们有常用的方法将数据存储在文件中。这些方法加密数据并将它们存储在文件系统中。当我们需要数据时,ReadData方法会解密数据并返回纯文本。如果文本尺寸较小,此代码在正常情况下工作正常。但对于下面给出的示例文本,解密代码抛出异常-要解密的数据长度无效。异常发生在行//closetheCryptoStreamx_cryptostream.Close();我尝试了不同的方法,但没有成功。请帮忙。为什么我要加密已经加密的数据-我只是想使用大型应用程序的通用方法存储在一个文件中。常用方法storedata(key,data)和readdata(key)做我无法避免的加密

c# - 使用 .NET Core WebApp 访问 AWS ElasticBeanstalk 自定义环境变量

我们在ElasticBeanstalk仪表板中设置了自定义环境变量,位于配置=>软件配置=>“环境属性”部分。在C#MVC5项目中,我们可以通过使用ConfigurationManager.AppSettings查找这些变量来访问它们-这非常有效。然而,在.NET核心中,我们不再使用web.config。我们一直在尝试寻找一种访问环境变量的方法,但我们只找到了一个名为AWSSDK.Extensions.NETCore.Setup的nuget包。但是,这个包似乎没有让我们访问自定义变量。如有任何帮助,我们将不胜感激。 最佳答案 根据我

c# - 如何使用每个实现的附加参数/信息实现接口(interface)

我的MVCwebapp允许用户添加和删除图像。UI在我的业务层中调用ImageService.SaveImage(...),它在内部使用一个标志来告诉方法保存到Azure或文件系统。我最终可能会将S3添加到我认为这里的接口(interface)会很好用。这就是我想象中的代码在我的ImageService类中的样子。它不关心文件的保存方式或位置。//ServicetheUIusespublicstaticclassImageService{publicstaticvoidSaveImage(byte[]data,IImageProviderimageProvider){stringfil

c# - 安全地对多字节字符进行子串 c#

我正在尝试对包含多字节字符的字符串执行子字符串处理,但没有得到预期的结果。我正在尝试对像?test这样的字符串进行子字符串化。第一个字符是一个4字节字符,因此调用ToCharArray对此字符串返回:55357#第一个字符的字节1和256384#第一个字符的字节3和4116#t101#e115#s116#t因此,当我在此字符串上调用.Substring(1)时,它会返回一个无效字符串,该字符串以第一个字符的第三个和第四个字节开头,而不是“test”。有没有办法让.Substring和其他字符串操作将该字符视为一个单元? 最佳答案 您

c# - SSH.Net异步文件下载

我正在尝试使用SSH.NET从SFTP服务器异步下载文件。如果我同步执行它,它工作正常但是当我异步执行时,我得到空文件。这是我的代码:varport=22;stringhost="localhost";stringusername="user";stringpassword="password";stringlocalPath=@"C:\temp";using(varclient=newSftpClient(host,port,username,password)){client.Connect();varfiles=client.ListDirectory("");vartasks=

c# - simpledb如何做分页?

我知道如何使用NextToken对SimpleDB数据进行分页。但是,究竟如何处理前几页呢?我在.NET上,但我认为这不重要。我对总体策略更感兴趣。迈克卡尔弗的AnIntroductiontoAmazonSimpleDB网络研讨会提到使用面包屑,但他没有在视频中实现它们。编辑:视频提到了一个实现向后分页的示例项目,但视频在显示下载URL之前结束。我发现的一个示例项目没有处理分页。 最佳答案 转到下一页时,您可以通过仅允许“下一页”而不是任意分页来简化用例。您可以使用LIMIT子句在SimpleDB中执行此操作:SELECTtitle

c# - String.comparison 性能(带修剪)

我需要做很多高性能的不区分大小写的字符串比较,并意识到我这样做的方式.ToLower().Trim()真的很愚蠢,因为所有的新字符串都被分配了所以我仔细研究了一下,这种方式似乎更可取:String.Compare(txt1,txt2,StringComparison.OrdinalIgnoreCase)这里唯一的问题是我想忽略前导或尾随空格,即Trim()但如果我使用Trim,我会遇到与字符串分配相同的问题。我想我可以检查每个字符串,看看它是StartsWith("")还是EndsWith(""),然后才修剪。或者找出每个字符串的索引、长度并传递给string.Compareoverr