Tag: C#的

通过reflection查找可空属性的types

我通过reflection来检查对象的属性,并继续处理每个属性的数据types。 这是我的(减less的)来源: private void ExamineObject(object o) { Type type = default(Type); Type propertyType = default(Type); PropertyInfo[] propertyInfo = null; type = o.GetType(); propertyInfo = type.GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); // Loop over all properties for (int propertyInfoIndex = 0; propertyInfoIndex <= propertyInfo.Length – 1; propertyInfoIndex++) { propertyType = propertyInfo[propertyInfoIndex].PropertyType; } } 我的问题是,我最近需要处理可空属性,但我不知道如何获得可空属性的types。

以64位整数或相邻位的有效方法

我想要做的是取一个由比特对组成的64位无符号整数,并从中创build一个包含0的32位整数,如果相应对中的两个比特都是0,否则为1。 换句话说,转换看起来像这样的东西: 01 00 10 11 变成看起来像这样的东西 1 0 1 1 两个明显的解决scheme是蛮力循环或每个字节的查找表,然后做八个查找,并将它们结合成OR和位移的最终结果,但我相信应该有一个有效的方式。 我将这样做的C + + 64位整数,但如果有人知道有效的方式来做这个更短的整数,我相信我可以弄清楚如何扩展它。

手动调用析构函数始终是坏devise的标志?

我在想:他们说如果你手动调用析构函数 – 你做错了什么。 但是情况总是如此吗? 有任何反驳吗? 情况需要手动调用,哪里难以避免?不可能/不可行/不切实际。

从列表转换为IEnumerable格式

IEnumerable<Book> _Book_IE List<Book> _Book_List 我该怎么做才能将_Book_List转换成IEnumerable格式?

date时间格式转换为SQL格式使用C#

我试图从C#中保存当前的date时间格式,并将其转换为像这样yyyy-MM-dd HH:mm:ss的SQL Serverdate格式,因此我可以将其用于我的Update查询。 这是我的第一个代码: DateTime myDateTime = DateTime.Now; string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss"); 在date输出是好的,但时间总是“12:00:00”,所以我改变了我的代码如下: string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " + myDateTime.TimeOfDay.ToString("HH:mm:ss"); 它给了我一个编译错误“FormatException未处理”,并build议我需要parsing。 所以我试图按照我的研究在这里以我的代码做到这一点在staackoverflow: string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " + myDateTime.Parse.TimeOfDay.ToString("HH:mm:ss"); 要么 string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " + myDateTime.tryParse.TimeOfDay.ToString("HH:mm:ss"); 但它给了我一个方法,在给定的上下文中是无效的。 我试图寻找解决我的问题,目前停留两个小时。 我在C#中还是有点新的,你能帮忙吗?

针对预定义种子列表进行stringtesting的最快C ++algorithm(不区分大小写)

我有种子string列表,约100个预定义的string。 所有的string只包含ASCII字符。 std::list<std::wstring> seeds{ L"google", L"yahoo", L"stackoverflow"}; 我的应用程序不断收到很多可以包含任何字符的string。 我需要检查每个收到的行,并决定是否包含任何种子。 比较必须不区分大小写。 我需要最快的algorithm来testing收到的string。 现在我的应用程序使用这个algorithm: std::wstring testedStr; for (auto & seed : seeds) { if (boost::icontains(testedStr, seed)) { return true; } } return false; 它运作良好,但我不确定这是最有效的方法。 为了实现更好的性能,如何实现algorithm? 这是一个Windows应用程序。 应用程序接收有效的std::wstringstring。 更新 为了这个任务,我实施了Aho-Corasickalgorithm。 如果有人可以查看我的代码,那就太好了 – 我对这样的algorithm没有太大的经验。 链接到实施: gist.github.com

在C ++的类声明中初始化const成员

在PHP和C#中,常量可以在声明时初始化: class Calendar3 { const int value1 = 12; const double value2 = 0.001; } 我有以下C ++声明与另一个类用于比较两个math向量: struct equal_vec { bool operator() (const Vector3D& a, const Vector3D& b) const { Vector3D dist = b – a; return ( dist.length2() <= tolerance ); } static const float tolerance = 0.001; }; 这个代码编译没有g ++的问题。 现在在C ++ 0x模式下(-std […]

如何从string中去除标点符号?

对于这个问题希望有一个答案在30秒的一部分,我特别寻找C# 但在一般情况下,删除任何语言的标点符号的最佳方法是什么? 我应该补充:理想情况下,解决scheme不会要求您列举所有可能的标点符号。 相关: Python中的标点符号

不能在c#中使用“内联”数组?

想象一下,你有这个地方 public static T AnyOne<T>(this T[] ra) where T:class { int k = ra.Length; int r = Random.Range(0,k); return ra[r]; } 甚至只是这个 public static string OneOf(this string[] strings) { return "a"; } 那么,你当然可以做到这一点… string[] st = {"a","b","c"}; string letter = st.AnyOne(); …这是伟大的。 但。 看来你不能这样做: string letter = {"a","b","c"}.AnyOne(); 或者也许这个 string letter = ( {"a","b","c"} ).AnyOne(); […]

针对传统数据库的CodeFirst EF4.1 MVC – 多重性冲突

不pipe我把它混在一起,它给我错误。 我有一种感觉,我失去了一些明显的东西,因为我不断收到这些错误。 在模型生成期间检测到一个或多个validation错误: System.Data.Edm.EdmAssociationType::多重性与“Venue_Courses”关系中angular色“Venue_Courses_Source”中的参照约束冲突。 由于从属angular色中的所有属性都是不可空的,所以主体angular色的多重性必须为“1”。 System.Data.Edm.EdmAssociationEnd::多重性在“Venue_Courses”关系中的“Venue_Courses_Target”angular色中无效。 因为依赖angular色是指关键属性,所以依赖angular色的多重性的上界必须是1。 一个课程只能有一个场地,场地可以被很多课程使用 public class Course { [Key] public virtual int Id { get; set; } public string Title { get; set; } public DateTime StartDate { get; set; } public int VenueId { get; set; } public virtual Venue Venue { get; set; } } public class Venue { […]