小编Dun*_*oud的帖子

根据枚举值获取枚举名称

我已声明以下枚举:

public enum AfpRecordId
{
    BRG = 0xD3A8C6,
    ERG = 0xD3A9C6
}
Run Code Online (Sandbox Code Playgroud)

我想从值中检索枚举对象:

private AfpRecordId GetAfpRecordId(byte[] data)
{
    ...                    
}
Run Code Online (Sandbox Code Playgroud)

调用示例:

byte[] tempData = new byte { 0xD3, 0xA8, 0xC6 };
AfpRecordId tempId = GetAfpRecordId(tempData);

//tempId should be equals to AfpRecordId.BRG
Run Code Online (Sandbox Code Playgroud)

我也想使用linq或lambda,只要它们可以提供更好或相等的性能.

.net c# linq enums c#-4.0

6
推荐指数
1
解决办法
526
查看次数

XAML设计器错误 - 智能感知缺失

我遇到以下错误:
- Visual Studio 2013 Ultimate Update 1(与Update 3相同)
- Windows 10 TP Build 9860
- 仅限Windows应用商店(WPF桌面应用程序没有错误).

错误描述:
- UI XAML Designer不起作用(请参阅附件异常)
- XAML文件中的Intellisense不起作用(未显示任何建议).

System.Exception
Install failed. Please contact your software vendor.

Deployment Register operation with target volume C: on Package App.aa5630c6a.a99c1.a41a2.aaba0.ac20dd792d3d9_1.0.0.0_x86_NorthAmerica_8wekyb3d8bbwe from:  (C:\Users\Diego\AppData\Local\Microsoft\VisualStudio\12.0\Designer\ShadowCache\hwvetbdr.ucs\pfhjajzj.4bs\AppXManifest.xml)  failed with error 0x80070002. See http://go.microsoft.com/fwlink/?LinkId=235160 for help diagnosing app deployment issues.
   at Microsoft.Expression.HostUtility.Platform.AppContainerProcessDomainFactory.CreateDesignerProcess(String applicationPath, String clientPort, Uri hostUri, IDictionary environmentVariables, Int32& processId, Object& processData)
   at Microsoft.Expression.DesignHost.Isolation.Primitives.ProcessDomainFactory.ProcessIsolationDomain..ctor(ProcessDomainFactory factory, IIsolationBoundary boundary, AppDomainSetup appDomainInfo, FrameworkName targetFramework, String identifier, …
Run Code Online (Sandbox Code Playgroud)

intellisense winrt-xaml windows-store-apps visual-studio-2013 windows-10

6
推荐指数
1
解决办法
467
查看次数

从app.config文件中检索设置的名称

我需要从app.config文件中检索密钥设置的名称.

例如:

我的app.config文件:

<setting name="IGNORE_CASE" serializeAs="String">
    <value>False</value>
</setting>
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用以下方法检索值:

Properties.Settings.Default.IGNORE_CASE
Run Code Online (Sandbox Code Playgroud)

有没有办法从我的键设置中获取字符串"IGNORE_CASE"?

.net c# settings c#-4.0

4
推荐指数
1
解决办法
2841
查看次数

PDF 合并/与 iText 重叠

我已经将 iText 用于一些各种实用程序,例如我们成功合并和编辑 pdf 文件。现在我需要重叠 2 个 pdf 页面:

例如:输入:PDF#1(1页)PDF#2(1页)

输出:PDF#3(1 页:这是 2 个输入页重叠的结果)

我不知道 iText 最新版本是否可以做到这一点。我还考虑使用 2 个输入 PDF 文件之一作为 PDF 输出文件的背景。

先感谢您。

.net c# pdf itext itextsharp

4
推荐指数
1
解决办法
2376
查看次数

使用SubList <T>性能更新List <T>(LINQ或Not)

我有一个列表,可以有~200'000项.我需要使用子列表更新固定数量的字段,例如150项.这是我现在使用的代码:

listItem:200'000 item List - subListItem:150 item List(已更新)

listItem.Select(item =>
{
    if (subListItem.Exists(x => x.ID == item.ID))
    {
        var currentItem = subListItem.Single(x => x.ID == item.ID);
        item.FIELD_1 = currentItem.FIELD_1;
        item.FIELD_2 = currentItem.FIELD_2;
        item.FIELD_3 = currentItem.FIELD_3;
        item.FIELD_4 = currentItem.FIELD_4;
    }

    return item;
}).ToList();
Run Code Online (Sandbox Code Playgroud)

这样做很好,但性能确实很差.你有什么建议吗?

更新的解决方案:

dictItem = listItem.ToDictionary(x => x.ID);

foreach (Item updatedItem in subListItem)
{
    Item originalItem = dictItem[updatedItem.ID];
    originalItem.FIELD_1 = updatedItem.FIELD_1;
    originalItem.FIELD_2 = updatedItem.FIELD_2;
    originalItem.FIELD_3 = updatedItem.FIELD_3;
    originalItem.FIELD_4 = updatedItem.FIELD_4;
    dictItem[updatedItem.ID] = originalItem;
}
Run Code Online (Sandbox Code Playgroud)

c# linq generics list updates

3
推荐指数
1
解决办法
287
查看次数

很容易lambda表达

Ciao大家,我终于能够从.NET Framework 2.0切换到.NET Framework 4.0.

我正在尝试获得有关lambda表达式和LINQ的一些经验.

有可能翻译这个:

for (int cont = 0;cont < args.Length; cont++)
    Console.WriteLine("#" + cont + " " + "<" + args + ">");
Run Code Online (Sandbox Code Playgroud)

单行lambda表达式,或者使用LINQ,甚至是其他一些我不知道的costruct?先感谢您.

.net c# linq lambda

1
推荐指数
1
解决办法
356
查看次数

函数调用约束

是否有类似C#的"调用约束"?

例如,我有以下功能:

public UInt16 ConvertByteToUInt16 (byte[] buffer)
{
   if (buffer.Length != 2)
   {
       throw new InvalidArgumentException(); 
   }

   Convert();
}
Run Code Online (Sandbox Code Playgroud)

有可能写出类似的东西:

public UInt16 ConvertByteToUInt16 (byte[] buffer) : where (buffer.Lenght = 2)
{
    Convert();       
}
Run Code Online (Sandbox Code Playgroud)

如果我这样调用函数:

ConvertByteToUInt16 (new byte[] { 0xFF, 0xFF, 0xFF } )
Run Code Online (Sandbox Code Playgroud)

我想在编译时遇到错误.我很确定C#2.0上没有这样的东西,但也许在C#4.0上?提前致谢.

.net c# asp.net

1
推荐指数
1
解决办法
100
查看次数