Tag: c# 4.0

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

有没有办法在C#4.0中使用匹配中包含的文本函数进行正则表达式替换? 在PHP中有这样的东西: reg_replace(‘hello world yay’,'(?=’)\s(?=’)’, randomfunction(‘$0’)); 并且它为每个匹配提供独立的结果,并在找到每个匹配的地方替换它。

调用构造函数的顺序c#中的inheritance情况

我只是在C#中读取inheritance,其中我遇到了构造函数,并且编写了构造函数按派生顺序执行。 它是什么意思?将首先调用该基类构造函数或派生类。

使用LINQ解析字符串中的数字

是否有可能编写一个查询,我们从任何给定的字符串中获取所有可以解析为int的字符? 例如,我们有一个字符串,如: “$%^DDFG 6 7 23 1″ 结果必须是”67231” 甚至更轻微一点:我们只能获得前三个数字吗?

如何在C#中以相反的顺序(从最后到第一个)迭代字典?

我有一个字典并在其上添加了一些元素。例如, Dictionary d = new Dictionary(); d.Add(“Content”,”Level0″); d.Add(“gdlh”,”Level1″); d.Add(“shows”,”Level2″); d.Add(“ytye”,”Level0″); 在C#中,Dictionary使元素保持自然顺序。但我现在想要将这些值从最后一个迭代到第一个(即,逆序).i意思是, 首先,我想阅读ytye然后显示,gdlh,最后是内容。 请指导我摆脱这个问题……

为什么IList 没有排序?!?! (编辑)的

当我发现没有直接的方法对IList 进行排序或执行二进制搜索时,我感到非常惊讶。 就像有一些静态方法来对数组进行排序和执行二进制搜索一样,我认为使用类似于IList 的静态方法会非常有帮助。 目前: class Array { static Sort(T[] array); static int BinarySearch(T[] array, T item); } 我希望他们会补充: class List { static Sort(IList list); static int BinarySearch(IList list, T item); } 我瞥了一眼.NET Framework 4.0 Beta SDK,似乎仍然没有解决这个问题的方法。 我知道我可以通过创建一个扩展方法来解决这个问题,该方法检查它是否是List 然后使用List 实例进行排序/搜索; 但是,如果它不是List 的实例,那么我必须执行一个副本(对于非常大的列表很臭)。 我知道我可以做到这一切,但为什么呢? 有没有理由他们故意省略这个function? 为了尝试在.NET 4.0 Framework中实现这一点,我通过Microsoft的Connect程序创建了一个建议。 如果你像我一样对这个问题感到沮丧,那就投票吧,也许它会被添加。 https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=474201

如何在C#中将System.Array转换为object

我有一个COM函数,期望object[]作为参数: foo(object[] values) 我想传递一些enum字段,所以我使用以下内容: object[] fields = (object[])Enum.GetValues(typeof(SomeEnumType)); 但是,当我尝试将fields传递给foo(…)即[ foo(fields) ]时出现错误: “无法将类型为’SomeEnumType []’的对象强制转换为’system.Object []’。 谁能告诉我我做错了什么?

多列数据转换

我正在接收数据源中的数据,我需要先将数据透视,然后才能将信息发送到UI进行显示。 I am new to concept of pivoting & I am not sure how to go about it. 该问题分为两部分: 形成标题 透视数据以匹配标题 要记住的事情: 我有一些我不想转动的专栏。 我把它们称为static columns. 我需要转动某些列以形成多级头信息。 我把它们称为dynamic columns 某些列需要旋转,其中包含实际值。 我称它们为value columns 。 可以拥有的dynamic, static and value columns数没有限制 。 假设,当数据到来时,我们将首先获得静态列的数据,然后是动态列,然后是值列。 有关更多信息,请参见附图。 虚拟数据: class Program { static void Main(string[] args) { var _staticColumnCount = 2; //Columns that […]

MemoryStream.CopyTo不工作

TiffBitmapDecoder decoder = new TiffBitmapDecoder(imageStreamSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); using (MemoryStream allFrameStream = new MemoryStream()) { foreach (BitmapFrame frame in decoder.Frames) { using (MemoryStream ms= new MemoryStream()) { JpegBitmapEncoder enc = new JpegBitmapEncoder(); enc.Frames.Add(BitmapFrame.Create(frame)); enc.Save(ms); ms.CopyTo(allFrameStream); } } Document documentPDF = new Document(); PdfWriter writer = PdfWriter.GetInstance(documentPDF, allFrameStream); } 始终allFrameStream的Length=0 。 但每次迭代我都能看到ms.Length=989548 。 我的代码中的错误是什么。 为什么ms.CopyTo(allFrameStream)不起作用?

想要从字符串中删除双引号

我在这里看到一些与删除双引号有关的问题。 但它没有解决我的问题。 他们告诉使用Replace或Trimfunction。 我用过,但问题仍然存在。 我的代码: DataTable dt = TypeConveriontHelper.ConvretExcelToDataTable(SourceAppFilePath); string targetPath = BatchFolderPath + @”\” + “TRANSACT.INX”; StreamWriter wrtr = null; wrtr = new StreamWriter(targetPath); for (int x = 0; x < dt.Rows.Count; x++) { string rowString = ""; for (int y = 0; y < dt.Columns.Count; y++) { if (y == dt.Columns.Count – 1) […]

C#和VB如何处理命名参数之间的差异?

现在C#支持命名参数,我正在检查它是否以与VB相同的方式实现,并发现存在细微差别。 以这样的库函数为例: public static void Foo(string a, string b) { Console.WriteLine(string.Format(“a: {0}, b: {1}”, a, b)); } 在C#中,如果你这样称呼它: Foo(a: “a”, b: “b”); 编译器生成以下IL指令: .locals init ( [0] string CS$0$0000, [1] string CS$0$0001) L_0000: nop L_0001: ldstr “a” L_0006: stloc.0 L_0007: ldstr “b” L_000c: stloc.1 L_000d: ldloc.0 L_000e: ldloc.1 L_000f: call void [TestLibrary]TestLibrary.Test::Foo(string, string) L_0014: nop […]