我知道在这个问题上有很多类似的问题,但我找不到我想要的答案.这是我的要求.
我有很长的字符串列表(很容易超过50,000或甚至100K项目),我需要在其中找到重复的项目.但只是发现重复不会做; 我真正想要做的是浏览列表并在每个项目的末尾添加一个增量索引,以指示项目重复的次数.为了更好地说明,让我举一个例子.我的列表实际上包含路径,所以示例大致类似于.
我原来的清单:
AAA\BBB
AAA\CCC
AAA\CCC
BBB\XXX
BBB
BBB\XXX
BBB\XXX
Run Code Online (Sandbox Code Playgroud)
我的调整后的列表添加了索引:
AAA\BBB[1]
AAA\CCC[1]
AAA\CCC[2]
BBB\XXX[1]
BBB[1]
BBB\XXX[2]
BBB\XXX[3]
Run Code Online (Sandbox Code Playgroud)
首先,我使用Linq尝试了以下方法:
List<string> originalList = new List<string>();
List<string> duplicateItems = new List<string>();
// pathList is a simple List<string> that contains my paths.
foreach (string item in pathList)
{
// Do some stuff here and pick 'item' only if it fits some criteria.
if (IsValid(item))
{
originalList.Add(item);
int occurences = originalList.Where(x => x.Equals(item)).Count();
duplicateItems.Add(item + "[" + occurences + "]");
}
}
Run Code Online (Sandbox Code Playgroud)
这很好用,给了我想要的结果.问题是,由于我的列表可以包含100K项目,因此速度很慢.所以我环顾四周,了解到HashSet可能是一种可能更有效的替代方案.但我无法弄清楚如何使用它获得我想要的结果. …
在我的项目中,我需要将 DataBind 绑定到驻留在另一个 UserControl 中的 UserControl。为简洁起见,我创建了一个概念上相似但非常简单的项目。
想象一下,我正在创建一个电话簿应用程序,其中包含两个用户控件,如下所示。
窗口中的蓝色大框是一个 UserControl,显示所有者的姓名 (Jane Doe),其中的每个黄色框也是 UserControl,显示联系人的姓名和电话号码。
我有两个类保存相关数据,如下所示:
public class Person
{
public string Name { get; set; }
public string Phone { get; set; }
public Person() { }
}
public class PhoneBook
{
public string OwnerName { get; set; }
public ObservableCollection<Person> ContactList { get; set; }
public PhoneBook() { }
}
Run Code Online (Sandbox Code Playgroud)
在我的 中MainWindow,我使用 ViewModel 并绑定到PhoneBookUserControl,如下所示:
<Window x:Class="UserControlDataBinding.MainWindow"
Title="MainWindow" Height="300" Width="350"
DataContext="{Binding Source={StaticResource mainViewModelLocator},Path=ViewModelPhoneBook}">
<Grid>
<local:UCPhoneBook x:Name="ucPhoneBook" MainPhoneBook="{Binding PhoneBookData}"></local:UCPhoneBook> …Run Code Online (Sandbox Code Playgroud) 在我的C++ Win32程序中,我想将当前的显示设置设置为"扩展"模式.我用Google搜索并发现SetDisplayConfig()是在Windows 7中前进的方式(我在Windows 7上),但现在我有点陷入困境,因为MSDN解释(链接在这里)非常令人困惑.我对C++和API编程非常陌生,所以我发现很难理解这一点.
我非常感谢一些代码示例和解释.提前致谢!
我先来描述一下我的情况.
我有一个十六进制值列表,称为BaseID.选择它们使得任意数量的逻辑OR将为您提供一个名为FinalID 的唯一ID.也就是说,我的BaseID值如下.
BaseID = {0x01,0x02,0x04,0x08,0x10,...}
关键的一点是,我不知道在运行程序之前我将拥有多少个BaseID (一旦我从文件中读取程序时运行程序,我会得到一个BaseID列表),或者有多少个BaseID的总数将用于创建FinalID.它是根据我的程序的其他部分决定的.例如,以下是我的程序中可能有的两个FinalID.
FinalID =(0x01 | 0x04)= 0x05
FinalID =(0x02 | 0x04 | 0x10)= 0x16
现在,对任意数量的BaseID使用OR运算都很容易.我的问题是,我需要从FinalID中提取用于创建FinalID的BaseID.由于我选择了BaseID,因此一旦使用OR操作,它们总是会给我一个唯一的FinalID,我知道任何给定的FinalID都是使用一组特定的BaseID创建的.请注意,也可以仅使用一个BaseID创建FinalID,它相当于FinalID =(BaseID | 0x00).
我知道我需要做些什么来提取用于创建任何特定FinalID的BaseID; 我必须得到所涉及的BaseID的完整列表,然后在每个元素的comibnation中使用OR运算符来确定哪个组合给出了特定的FinalID.
但是我发现很难将这个逻辑转换成一个程序.我在.NET 3.5 Framework中使用C#.任何建议/想法将非常感谢.代码示例非常受欢迎.
提前致谢!
TL; DR;
C#语言是否确保int必须具有以下属性中的一个且仅具有以下属性?
000准确地说,这个断言是否保证永不失败?
public void CheckFacts(int n)
{
int trueFacts = 0;
if (n > 0) trueFacts += 1;
if (n == 0) trueFacts += 1;
if (n < 0) trueFacts += 1;
Assert.AreEqual(trueFacts, 1);
}
Run Code Online (Sandbox Code Playgroud)
后续问题:如果是,对于各种整数类型是否也是如此?(uint,long,ulong,sbyte,byte,short,ushort,...)
对于那些可能认为这个问题有点偏离的人,不要忘记计算机数字可能会令人惊讶.
例如,这不是double必须为正,负或零的情况.它可以是NaN,值将导致上述断言失败.+0.0或者-0.0,3个
编辑:
有人说我不知何故花时间写这个问题,但不是一分钟看规格.我实际上花了很多时间阅读:https://msdn.microsoft.com/fr-fr/library/system.int32(v = vs1010).aspx,因为int它应该是别名System.Int32.老实说,我不确定我的问题是否明确.另外,我彻底搜索了关于SO的c#问题,因为我认为有人必须先问过这个问题.对不起,如果这个问题对某些人来说显而易见,那对我来说就不是了.
例如,是否有可能具有2列的网格,并且每个网格具有不同的行数,例如第一列为4列,第二列为3列。

我想要图片上的东西
我已经看过这些问题及其答案:
尝试加载证书的私钥时出现“指定的提供程序类型无效”CryptographicException
如何创建客户端证书以通过 SSL 进行双向身份验证的本地测试?
第二个问题引用的这个博客。
我怀疑证书颁发者有问题,但我可能是错的。
前言
我是身份验证的新手(你可以把它读成白痴)。当前项目是将用 Visual Studio 2013 .Net 4.5.1 编写的现有网站和 Web 应用程序升级到 Visual Studio 2017 2017 .Net 版本 4.6.1,以满足新消息代理的要求。
环境
Windows 10
Visual Studio 2017 (15.8.1)
IIS 10
Microsoft SQL Server 2017
问题描述
用C#编写的web服务器在认证过程中抛出这个错误
{"IDX10614: AsymmetricSecurityKey.GetSignatureFormater( 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256' ) threw an exception.
Key:
'System.IdentityModel.Tokens.X509AsymmetricSecurityKey'\nSignatureAlgorithm: 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256', check to make sure the SignatureAlgorithm is supported.\nException:'System.Security.Cryptography.CryptographicException: Invalid provider type specified.
at System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer)
at System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle)\r\n …Run Code Online (Sandbox Code Playgroud) 我是初学者,目前正在从事一个实践项目.我的目标是创建一个Adress Book应用程序.我想要做的是我要求用户传递一个名字.我将该名称存储在变量中.我可以使用该字符串变量来命名对象吗?我已经找到了解决方案,他们都建议有一个构造函数,它需要一个名字并指定它,但我已经拥有它并且它不是我想要的.我将所有这些Person变量存储在一个Person List中(这就是我使用循环的原因)以后,我想建立一个系统来浏览Adress Book并搜索东西.所以我的整体问题是 - 我可以使用字符串变量来命名对象.有没有办法做到这一点?
while (true)
{
Console.WriteLine("Please enter names to the adress book or type \"quit\" to finish");
var input = Console.ReadLine();
var name = input;
if (string.IsNullOrEmpty(input))
{
throw new IsNullException("Name can not be null or empty");
}
if (input.ToLower() == "quit")
{
break;
}
Person person = new Person(input);
AdressBook.Add(person);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个 WPF 应用程序来为我拥有的一系列数字绘制折线图。这些数字列在一个.CSV文件中,我将在运行时读取该文件。因此,我不知道我将拥有的系列数,也不知道每个系列的最大/最小值。
为了进行演示并简洁起见,请看以下示例。将这些系列值视为我将从.CSV实际应用程序中的文件中读取的值。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
SeriesCollection = new SeriesCollection
{
new LineSeries
{
Title = "Series 1",
Values = new ChartValues<double> { 4, 66, 5, 2, 4 },
},
new LineSeries
{
Title = "Series 2",
Values = new ChartValues<double> { 6, 7, 3, 4, 6 },
},
new LineSeries
{
Title = "Series 3",
Values = new ChartValues<double> { 4, 2, 7, 2, 7 }, …Run Code Online (Sandbox Code Playgroud) byte[] buffer2 = new byte[4294743227]; // string with System.OverflowException
Run Code Online (Sandbox Code Playgroud)
号码4294743227是uint.
为什么我会例外?