Tag: 结构

将嵌套的for循环转换为单个LINQ语句

有人可以帮我把这个嵌套结构变成一个LINQ语句吗? EventLog[] logs = EventLog.GetEventLogs(); for (int i = 0; i < logs.Length; i++) { if (logs[i].LogDisplayName.Equals("AAA")) { for (int j = 0; j < logs[i].Entries.Count; j++) { if (logs[i].Entries[j].Source.Equals("BBB")) { remoteAccessLogs.Add(logs[i].Entries[j]); } } } }

为什么不能在结构体内初始化非静态字段?

考虑这个代码块: struct Animal { public string name = “”; // Error public static int weight = 20; // OK // initialize the non-static field here public void FuncToInitializeName() { name = “”; // Now correct } } 为什么我们可以初始化结构中的static字段而不non-static字段? 为什么我们必须在方法体中初始化non-static ?

如果结构不能inheritance另一个类或结构,为什么Int32有一个ToString()方法?

int a = 2; Console.WriteLine(a.ToString()); // displays 2 // definition of ToString() here – public override string ToString(); 现在,以下是我的一些理解: .net中的所有类都获得一个ToString()方法,该方法inheritance自Object类。 结构不能从Class或其他结构派生。 int是Int32类型的结构,它从它实现的接口获取几个ToString() [With Parameters]方法。 struct Int32还有一个ToString() [没有params]函数 根据http://msdn.microsoft.com/en-us/library/system.int32.tostring.aspx , struct Int32重写ValueType.ToString()方法 如果结构不能inheritance某个类或结构,那么请解释一下这个ToString()方法如何用于Int32 ?

C# – 动态添加对象(添加动态属性名称)

我正在尝试创建一些动态的ExpandoObject 。 我遇到了一个问题。 由于我不知道我的对象中这些不同属性的名称应该是什么,我不能这样做: var list = new ArrayList(); var obj = new ExpandoObject(); obj.ID = 1, obj.Product = “Pie”, obj.Days = 1, obj.QTY = 65 list.Add(obj); 让我解释一下我的情况:我希望从随机数据库中获取数据(我不知道哪个,但是根据我从UI获得的信息构建连接字符串),因此我不知道需要获取哪些数据。 这可能是数据库表的一个例子 表销售 ID:int, 产品:nvarchar(100), 天:int, 数量:bigint 这可能是另一个例子: 表Foobar Id:int, 天:int 数量:bigint Product_Id:int Department_Id:int 如您所见,我不知道数据库的外观(这是100%匿名,因此它需要100%动态),我想要返回的数据应该看起来像一个构造良好的JSON,如下所示: [ { “ID”: 1, “Product”: “Pie” “Days”: 1, “QTY”: 65 }, { “ID”: […]

如何确定.NET Type是否是自定义结构?

如何编写一个简单的方法,检查具体类型是否是自定义结构(使用public struct { };创建)。 检查Type.IsValueType是不够的,因为它也适用于int , long等,并添加一个检查!IsPrimitiveType不会排除decimal , DateTime和其他一些值类型。 我知道大多数内置值类型实际上是“结构”,但我只想检查“自定义结构” 这些问题大致相同但没有我需要的答案: #1 #2 #3 编辑:从提到的答案“检查’系统’前缀”是最稳定的(虽然它仍然是一个黑客)。 我最终决定创建一个必须用它来装饰结构的属性,以便框架将其作为自定义结构来选择。 (我想的另一个选择是创建一个空接口,让struct实现那个空接口,但属性方式似乎更优雅) 这是我原来的自定义结构检查器,如果有人感兴趣: type.IsValueType && !type.IsPrimitive && !type.Namespace.StartsWith(“System”) && !type.IsEnum

当struct未初始化时,如果我们尝试访问属性但不使用变量,则编译器会出错

我有一个关于结构的观察。 当我在Struct中声明一个属性,如果我没有初始化Struct那么它给我下面的错误 – “使用未分配的局部变量empStruct” PSeduo代码 – struct EmpStruct { private int firstNumber; public int FirstNumber { get { return firstNumber; } set { firstNumber = value; } } public int SecondNumber; } Program.cs- EmpStruct empStruct; empStruct.FirstNumber = 5; 但是当我声明公共变量时,上面的代码就可以了。 EmpStruct empStruct; empStruct.SecondNumber; 所以我的问题是为什么编译器在我尝试访问变量时不会出错。(如果是Class,它会给出错误)。

C#抽象结构

如何在C#中使用结构实现inheritance(或类似)? 我知道抽象结构是不可能的,但我需要实现类似的东西。 我需要它作为结构,因为它必须是一个值类型。 我需要inheritance,因为我需要一个通用数组和方法,我可以保证在那里。 我认为一个例子会有很长的路要走,所以有些代码不能编译,但会显示我想要实现的内容; abstract struct Vertex { abstract int SizeInBytes; abstract void SetPointers(); } struct ColorVertex : Vertex { Vector3 Position; Vector4 Color; override int SizeInBytes //static { get { return (3 + 4) * 4; } } override void SetVertexPointers() //static { … } } class main { static void main() { […]

结构上的方法调用?

当我们在对象上调用方法时,对象的引用将隐式传递给方法。 所以我的问题是在结构上调用方法时会发生什么? 它与这方面的类似吗?

C#是否使用 – >指针表示法?

我正在尝试学习C#,我熟悉C ++ struct指向符号 – >我很好奇是否可以转换到C#。 例: someStruct->someAttribute += 1;

inheritance自struct

我试着弄明白我的代码有什么问题。 我有这个代码: public struct MyStructA { public MyStructA(string str) { myString= str; } public string myString; } public struct MyStructB: MyStructA { public string myReversString; } 我得到这个错误: Error at compile time: Type ‘MyStructA’ in interface list is not an interface 我不明白为什么? .net不像类那样实现struct?