RegEx在字符串中多次匹配

我正在尝试从字符串中提取<>之间的值。 但它们可能会发生多次。 任何人都可以帮助正则表达式匹配这些; this is a test for <> who like <> test 2 <> likes nothing test 3 <> <> <> <> <> <> <>. 然后我想要预先通过GroupCollection获取所有值。 任何帮助都很受欢迎。 谢谢。

在正则表达式中逃避特殊性格

有没有办法从字符串中转义正则表达式中的特殊字符,例如[]()*和其他字符? 基本上,我要求用户输入一个字符串,我希望能够使用正则表达式在数据库中进行搜索。 我碰到的一些问题too many)’s或者[xy] range in reverse order等等。 所以我想要做的是编写一个函数来替换用户输入。 例如,替换(用\( ,替换[ with \[ 是否有正则表达式的内置函数? 如果我必须从头开始编写函数,是否有办法轻松地对所有字符进行编码,而不是逐个编写替换语句? 我正在使用Visual Studio 2010在C#中编写程序

什么是ThreadPool服务器的async / await等价物?

我正在使用同步apis和线程池的tcp服务器看起来像这样: TcpListener listener; void Serve(){ while(true){ var client = listener.AcceptTcpClient(); ThreadPool.QueueUserWorkItem(this.HandleConnection, client); //Or alternatively new Thread(HandleConnection).Start(client) } } 假设我的目标是在资源使用率最低的情况下处理尽可能多的并发连接,这似乎很快就会受到可用线程数量的限制。 我怀疑通过使用非阻塞任务apis,我将能够用更少的资源处理更多。 我最初的印象是这样的: async Task Serve(){ while(true){ var client = await listener.AcceptTcpClientAsync(); HandleConnectionAsync(client); //fire and forget? } } 但令我印象深刻的是,这可能会导致瓶颈。 也许HandleConnectionAsync需要花费非常长的时间才能达到第一个await,并且会阻止主接受循环继续进行。 这只会使用一个线程,还是运行时会在多个线程上神奇地运行它看起来合适的东西? 有没有办法将这两种方法结合起来,这样我的服务器就可以使用它所需的线程数来满足正在运行的任务的数量,但是它不会在IO操作上不必要地阻塞线程? 在这种情况下,是否存在最大化吞吐量的惯用方法?

C#:用于解码Quoted-Printable编码的类?

C#中是否存在可以将Quoted-Printable编码转换为String的现有类? 单击上面的链接以获取有关编码的更多信息。 为方便起见,以上链接引用了以下内容。 任何8位字节值可以用3个字符编码,“=”后跟两个hex数字(0-9或A-F),表示字节的数值。 例如,US-ASCII换页符(十进制值12)可以用“= 0C”表示,US-ASCII等号(十进制值61)用“= 3D”表示。 除了可打印的ASCII字符或行尾字符之外的所有字符都必须以这种方式编码。 所有可打印的ASCII字符(33到126之间的十进制值)可以由它们自己表示,除了“=”(十进制61)。 ASCII选项卡和空格字符,十进制值9和32,可以由它们自己表示,除非这些字符出现在一行的末尾。 如果其中一个字符出现在一行的末尾,则必须将其编码为“= 09”(制表符)或“= 20”(空格)。 如果正在编码的数据包含有意义的换行符,则必须将它们编码为ASCII CR LF序列,而不是其原始字节值。 相反,如果字节值13和10具有除行尾之外的含义,则它们必须被编码为= 0D和= 0A。 引用可打印编码数据的行不得超过76个字符。 为了在不改变编码文本的情况下满足该要求,可以根据需要添加软换行符。 软换行符在编码行的末尾包含“=”,并且不会在解码的文本中导致换行符。

当C#在同一个包含的类中时,为什么以及如何允许访问类本身之外的私有变量?

我不知道这个问题是否足够描述,但为什么以及这种行为是如何存在的? public class Layer { public string Name { get; set; } private IEnumerable children; public IEnumerable Children { get { return this.children.Where ( c => c.Name != null ).Select ( c => c ); } set { this.children = value; } } public Layer ( ) { this.children = new List ( ); // […]

如何在json反序列化期间忽略未知的枚举值?

当我的枚举与json属性中提供的字符串值不匹配时,如何让Json.net不要抛出? 当我根据当前文档创建枚举时会发生这种情况,但第三方API稍后会添加更多枚举值。 我很高兴将特殊值标记为Unknown或使用可空的枚举,并且不匹配的值将返回null。

使用额外参数上传Webapi formdata(到DB)

我需要上传文件发送额外的参数。 我在stackoverflow中找到了以下post: 带有额外参数的Webapi ajax formdata上传 它描述了如何使用MultipartFormDataStreamProvider并将数据保存到文件服务器。 我不需要将文件保存到服务器,而是保存到DB。 我已经使用MultipartMemoryStreamProvider处理代码,但它不使用额外的参数。 你能告诉我如何在webapi中处理额外的参数吗? 例如,如果我添加文件并测试参数: data.append(“myParameter”, “test”); 这是我的webapi处理fileupload而没有额外的参数: if (Request.Content.IsMimeMultipartContent()) { var streamProvider = new MultipartMemoryStreamProvider(); var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith<IEnumerable>(t => { if (t.IsFaulted || t.IsCanceled) { throw new HttpResponseException(HttpStatusCode.InternalServerError); } _fleDataService = new FileDataBLL(); FileData fle; var fleInfo = streamProvider.Contents.Select(i => { fle = new FileData(); fle.FileName = i.Headers.ContentDisposition.FileName; […]

将字典序列化为数组(键值对)

Json.Net通常将Dictionary序列化为集合; “MyDict”: { “Apples”: { “Taste”: 1341181398, “Title”: “Granny Smith”, }, “Oranges”: { “Taste”: 9999999999, “Title”: “Coxes Pippin”, }, } 哪个好。 从环顾四周看似乎是大多数人想要的东西。 但是,在这种特殊情况下,我想在我的Dictionary和Array格式之间进行序列化; “MyDict”: [ “k”: “Apples”, “v”: { “Taste”: 1341181398, “Title”: “Granny Smith”, } }, “k:”: “Oranges”, “v:”: { “Taste”: 9999999999, “Title”: “Coxes Pippin”, } }, ] 使用现有的字段类型有一种简单的方法吗? 有没有我可以注释的属性?

变量在当前上下文中不存在?

我知道这很可能是一个愚蠢的问题,但我是一名大学生,他是C#和面向对象编程的新手。 我试图在别处找到答案,但我找不到任何有用的东西。 调试器一直告诉我变量’cust_num在当前上下文中不存在’。 如果有人能告诉我我做错了什么并让我觉得自己像个白痴,我会非常感激。 谢谢! string get_cust_num() { bool cust_num_valid = false; while (!cust_num_valid) { cust_num_valid = true; Console.Write(“Please enter customer number: “); string cust_num = Console.ReadLine(); if (cust_num == “000000” || !Regex.IsMatch(cust_num, @”^[0-9]+$”) || cust_num.Length != 6) { cust_num_valid = false; Console.WriteLine(“Invalid customer number detected. Customer numbers must be a 6 digit positive integer […]

如何使用reflection调用扩展方法?

我很感激之前已经提出了类似的问题,但我正在努力调用以下代码中的Linq Where方法。 我希望使用reflection动态调用此方法,并动态构建Where子句中使用的委托(或lambda)。 这是一个简短的代码示例,一旦工作,将有助于形成我正在构建的解释DSL的一部分。 干杯。 public static void CallWhereMethod() { List myObjects = new List(){new MyObject{Name=”Jon Simpson”}}; System.Delegate NameEquals = BuildEqFuncFor(“Name”, “Jon Simpson”); object[] atts = new object[1] ; atts[0] = NameEquals; var ret = typeof(List).InvokeMember(“Where”, BindingFlags.InvokeMethod, null, InstanceList,atts); } public static Func BuildEqFuncFor(string prop, object val) { return t => t.GetType().InvokeMember(prop,BindingFlags.GetProperty, null,t,null) == val; […]