用于C#/ F#/ VB的轻量级代码暂存器和支持SQL和LINQ的数据库查询工具。由Joe Albahari撰写。
如果我想在控制台中显示某些内容,我通常会这样写:Console.Write("Hello{0}", AnyNumber);。 但是如果我使用 Interaction.MsgBox 并编写 Interaction.MsgBox("Hello {0}, AnyNumber"); ...
我已经开始在 Visual Studio Enterprise 15 Preview 2 中尝试 C# 7 的新功能。我能够运行其他即将推出的功能的代码,例如二进制文字、数字分隔符等。但是
C#中通过System.Linq获取元素的属性Name和Value
我有一个自定义配置文件。 我有一个自定义配置文件。 <Students> <student> <Detail Name="abc" Class="1st Year"> <add key="Main" value="web"/> <add key="Optional" value="database"/> </Detail> </student> </Students> 我通过IConfigurationHandler接口实现来读取这个文件。 当我读取 Detail 元素的 childNode 属性时。它将以下结果返回到 IDE 的立即窗口中。 elem.Attributes.ToObjectArray() {object[2]} [0]: {Attribute, Name="key", Value="Main"} [1]: {Attribute, Name="value", Value="web"} 当我尝试在控制台上书写时 Console.WriteLine("Value '{0}'",elem.Attributes.ToObjectArray()); 它确实让我回归 Value : 'System.Configuration.ConfigXmlAttribute' elem.Attributes.Item(1)方法为我提供了名称和值详细信息,但在这里我需要传递我当前不知道的属性的索引值。 我想通过LINQ查询获取属性的名称和值,并在控制台上单独显示每个childNode属性,如下所示: Value : Name="Key" and Value="Main" Name="value", Value="web" 我怎样才能实现这一目标? 如果您想使用此Xml库,您可以使用以下代码获取所有学生及其详细信息: XElement root = XElement.Load(file); // or .Parse(string) var students = root.Elements("student").Select(s => new { Name = s.Get("Detail/Name", string.Empty), Class = s.Get("Detail/Class", string.Empty), Items = s.GetElements("Detail/add").Select(add => new { Key = add.Get("key", string.Empty), Value = add.Get("value", string.Empty) }).ToArray() }).ToArray(); 然后要迭代它们,请使用: foreach(var student in students) { Console.WriteLine(string.Format("{0}: {1}", student.Name, student.Class)); foreach(var item in student.Items) Console.WriteLine(string.Format(" Key: {0}, Value: {1}", item.Key, item.Value)); } 您可以使用 Linq Select 和 string.Join 来获得您想要的输出。 string.Join(Environment.NewLine, elem.Attributes.ToObjectArray() .Select(a => "Name=" + a.Name + ", Value=" + a.Value) ) 这将获取您在问题中所述的 Detail 元素的子元素的所有属性。 XDocument x = XDocument.Parse("<Students> <student> <Detail Name=\"abc\" Class=\"1st Year\"> <add key=\"Main\" value=\"web\"/> <add key=\"Optional\" value=\"database\"/> </Detail> </student> </Students>"); var attributes = x.Descendants("Detail") .Elements() .Attributes() .Select(d => new { Name = d.Name, Value = d.Value }).ToArray(); foreach (var attribute in attributes) { Console.WriteLine(string.Format("Name={0}, Value={1}", attribute.Name, attribute.Value)); } 如果您在 object[] 中具有 Attributes,如您所写,可以通过 来嘲笑 var Attributes = new object[]{ new {Name="key", Value="Main"}, new {Name="value", Value="web"} }; 那么问题是你有匿名类型,其名称无法轻易提取。 看一下这段代码(您可以将其粘贴到 LinqPad 编辑器窗口的 main() 方法中来执行): var linq=from a in Attributes let s = string.Join(",",a).TrimStart('{').TrimEnd('}').Split(',') select new { Value = s[0].Split('=')[1].Trim(), Name = s[1].Split('=')[1].Trim() }; //linq.Dump(); 由于您无法访问 object[] 数组内变量 Attributes 的 Name 和 Value 属性,因为编译器对您隐藏了它们,因此技巧是使用 Join(",", a)绕过这个限制的方法。 之后您需要做的就是trim和split生成的字符串,最后创建一个具有Value和Name属性的新对象。 如果您取消注释 LinqPad 中的 linq.Dump(); 行,您可以尝试一下 - 它会返回您想要的内容,并且还可以通过 Linq 语句进行查询。
我通过以下方式从数据库获取数据: 结果 = (来自 context.FTDocuments 中的 d 将 d.ID 上的 context.FTDocFlags 中的 f 等于 f.DocID 加入 fgrp ...
LINQ 运算符“==”不能应用于“char”和“string”类型的操作数
我过去几乎没有使用过LINQ。今天,当我尝试使用 LinqPad 编写一个小 LINQ 查询时,出现以下错误: 运算符“==”不能应用于“char”和“st...”类型的操作数
当我使用DataSet时,有可能引发RowChanging、RowChanged、ColumnChanging、ColumnChanged等事件... 如何对实体框架中的实体执行相同的操作?
我有一个 JSON 对象,类似于: var jsonObject = {"att1" : "val1","att2" : "val2","att3" : "val3","att4" : "val4&quo...
嗨,我有一个包含以下字段的数据表 DAT_START 分组 TXT_纬度 TXT_经度 INT_DIRECTION INT_CALL_DATA_TYPE 液化天然气_持续时间 以下是我正在使用的 LINQ 查询 var 数据=(来自...
我的表中有一个值被意外更改。有问题的列是 CreatedDate,它是在创建我的项目时设置的,但它正在被存储过程更改。 我可以写一些吗...
我正忙于创建一个 XDocument 对象。在其中一个元素中,我需要添加域名和服务帐户。 服务帐户的形式如下: 我的域名\我的服务帐户 我需要标签...
使用 LinkPad 5 我无法加载 EF6 自定义 dll 并使用实体
我尝试使用 LinqPad 5 从我的解决方案访问现有的自定义 DbContext,并使用该测试\开发查询和代码。 (两年前我在一个类似的项目中也取得了同样的成绩) ...
如何使用表情符号样式(彩色)在 LINQPad 中渲染 unicode 字符?
如何使用表情符号样式(颜色)而不是字符样式(单色)在 LINQPad 中渲染 unicode 字符? 我尝试了以下代码(使用 VARIATION SELECTOR-16 来强制表情符号样式): 康...
我正在尝试在我自己的代码中重用 LINQPad 8 中的连接字符串。我使用以下行来获取连接字符串: var 连接字符串 = this.Connection.ConnectionString; 然而,...
Linqpad 8 无法连接到 .NET 8 SQL Server DbContext
我尝试在 LinqPad 8.4.11 中添加连接时遇到错误。我想使用 .NET 8 dll 中的 dbContext。我唯一的选择是 DbContextOptions 的构造函数(省略连接字符串...
读取 LinqPad 8 的 ConfigurationManager.AppSettings
我在读取configurationmanager.appsettings时遇到问题,我想使用LINQPad 8调试带有我创建的DLL库的程序。 问题是 DLL 库采用
当 DbContext 有额外的构造函数参数时,如何将 LinqPad 连接到 EF Core 模型?
我有一个 EF Core 模型,并且已经从 LinqPad 成功使用该模型一段时间了。上下文类是相当标准的,添加了一个额外的构造函数和配置方法以方便我们......
构建多个程序集之一,在 LINQPad (C#) 中重新运行计算
我有一个包含两个组件的解决方案。 第一个程序集/项目从数据库加载数据并缓存它(“数据程序集”)。 第二个程序集/项目对缓存的数据执行计算
在LINQPad中,如果一个nuget包引用了另一个有漏洞的nuget包,如何执行相当于绑定重定向的操作
我有一个 LINQPad 脚本,使用 C# 并引用 nuget 库 Contrast.Rest.Client。 nuget 管理器警告我 Contrast.Rest.Client 依赖于存在漏洞的 Newtonsoft.Json 版本。 我已经
尝试将 Linqpad 链接到我的 EF 上下文时缺少 DLL
我正在尝试使用 Linqpad 来读取我的 EF 课程。由于解决方案其余部分的兼容性问题,我们使用 EF 3.1。 在 Lingpad 版本 5 及更高版本中,它只会链接到“Entity