小编its*_*att的帖子

LINQ to XML可选元素查询

我正在使用现有的XML文档,其结构(部分)如下:

<Group>
    <Entry>
        <Name> Bob </Name>
        <ID> 1 </ID>
    </Entry>
    <Entry>
        <Name> Larry </Name>
    </Entry>
</Group>
Run Code Online (Sandbox Code Playgroud)

我正在使用LINQ to XML来查询XDocument以检索所有这些条目,如下所示:

var items = from g in xDocument.Root.Descendants("Group").Elements("Entry")
    select new
    {
        name = (string)g.element("Name").Value,
        id = g.Elements("ID").Count() > 0 ? (string)g.Element("ID").Value : "none"
    };
Run Code Online (Sandbox Code Playgroud)

"ID"元素并不总是存在,因此我对此的解决方案是上面的Count()爵士乐.但我想知道是否有人有更好的方法来做到这一点.我仍然对这些新东西感到满意,我怀疑可能有更好的方法来做到这一点,而不是我现在正在做的事情.

有没有更好/更优选的方式来做我想要的?

c# linq anonymous-types linq-to-xml

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

我们如何通过位置和分隔符提取字符串的子串

我们如何从字符串中划分子字符串

就像我有字符串

String mainString="///Trade Time///Trade Number///Amount Rs.///";
Run Code Online (Sandbox Code Playgroud)

现在我有其他字符串

String subString="Amount"
Run Code Online (Sandbox Code Playgroud)

然后我想Amount Rs.借助于名为subString的第二个字符串来提取子字符串 ,而不是通过任何其他方法.但它应该通过两个参数提取,首先是我有Amount字符串的索引号,第二个是直到下一个字符串///.

.net c# string winforms

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

查找所有MySQL存储过程调用?

对于我偶尔使用和修改的给定MySQL数据库,我最近必须对某些表和存储过程进行一些更改.此DB中有一些位置可以调用其他过程.我找到了在任何地方搜寻我需要修改这些修改过程的参数的麻烦的任务,并且使用转储数据库并对转储文件进行文本搜索以查找所有CALL语句.

我想知道是否有更好更简单的方法来做到这一点.我在这里做了一些粗略的搜索,并搜索了一个解决方案,但实际上没有找到答案.我怀疑有一种方法可以提出一个调用列表或一些实用程序使其变得简单,但我还没有找到这个解决方案.

有任何想法吗?

mysql stored-procedures

12
推荐指数
3
解决办法
2万
查看次数

MS Chart Control轴格式化

我正在写一个Winforms应用程序中使用MS Chart Control.我正在显示的散点图的X轴分量是Int64数据,最终表示UTC时间.我想获取Int64数据并基本上在其上执行DataTime.FromFileTimeUTC(theTime).ToString()以显示有意义的最终用户X轴标签.

目前,我正在内存中的DataTable中创建另一个列来保存与Int64等效的DateTime,如下所示:

dataTable.Columns.Add("mytimestamp");
foreach (DataRow dr in dataTable.Rows)
{
   dr["mytimestamp"] = DateTime.FromFileTimeUTC(Convert.ToInt64(dr["theint64val"].ToString()));
}
Run Code Online (Sandbox Code Playgroud)

然后使用"mytimestamp"列作为x轴值.这工作正常,我可以将x轴标签显示为日期时间值.

但是,我宁愿不经历创建列的麻烦,并且基本上复制了其他列的数据,但没有看到任何格式化x轴标签的方法.我猜想可能错过了这个.我在文档中看到了AxisViewChanged事件,并看到了如何使用该数据设置图表标题,而不是x轴标签本身.

有任何想法吗?

c# mschart winforms

12
推荐指数
2
解决办法
5048
查看次数

你会在哪里使用C#运行时编译?

我最近在另一个关于C#运行时编译的网站上进行了简短的讨论,同时搜索了其他内容,并认为这个想法很有趣.你有没有用过这个?我试图确定如何/何时可以使用它以及它解决了什么问题.我会非常有兴趣听听你是如何使用它的,或者是在有意义的环境中.

非常感谢.

c# optimization runtime-compilation

11
推荐指数
2
解决办法
4317
查看次数

如何通过编程方式搜索C#DropDownList

我很难搞清楚如何编写一系列"if"语句,这些语句通过不同的下拉列表搜索文本框中输入的特定值.我能够编写在每个下拉列表中找到特定值的代码; 但是,在此之前,我需要添加一个"if"语句,"如果dropdownlist不包含特定值,请转到next if语句,依此类推".以下是我到目前为止的一个例子:

if (dropdownlist1.SelectedValue == textbox1)
{
  dropdownlist1.SelectedIndex = dropdownlist1.items.indexof(dorpdownlist1.items.findbyvalue(textbox1.text) ...

if (dropdownlist2.SelectedValue == textbox1)
{
  dropdownlist2.SelectedIndex = dropdownlist2.items.indexof(dorpdownlist2.items.findbyvalue(textbox1.text) ...

etc...
Run Code Online (Sandbox Code Playgroud)

这样做是根据我在textbox1中的条目读取或扫描每个下拉列表中的第一个值或索引.不幸的是,它只识别第一个值或索引.我需要弄清楚如何在每个"if"语句中扫描整个下拉列表中的所有值,以找到匹配的textbox1值.有没有人有什么建议?

谢谢,

DFM

c# search drop-down-menu

10
推荐指数
2
解决办法
6万
查看次数

MS Chart Control缩放MinSize问题

我正在使用MS Chart Control .NET 3.5,WinForms,C#实现散点图.我的x轴数据是DateTime,并注意到我无法放大小于1天的分辨率,尽管设置ScaleView如下:

chart1.ChartAreas["MyChart"].AxisX.ScaleView.MinSize = 4;
chart1.ChartAreas["MyChart"].AxisX.ScaleView.MinSizeType = DateTimeIntervalType.Hours;
Run Code Online (Sandbox Code Playgroud)

其他人遇到过这个问题吗?有任何想法吗?

c# mschart winforms

10
推荐指数
2
解决办法
7716
查看次数

反映对Entity Framework生成的复杂类型中的存储过程所做的更改

所以我在SQL Server中有一个数据库,我正在连接并使用Entity Framework 4.1生成我的POCO类,这通常很好用.还有一些存储过程,我使用"函数导入"功能来创建检索调用它们的结果数据行.基本上我正在使用的过程是:

  1. 右键单击Model.edmx并选择"Function Import ..."
  2. 从下拉列表中选择程序
  3. 输入我想要的功能导入名称
  4. 点击"获取列信息"
  5. 点击"创建新的复杂类型"
  6. 点击"确定"

这将为结果集定义创建一个POCO类,我可以这样做:

var query = context.GetMyStuff().AsQueryable();

检索结果.这似乎工作得很好.

现在我遇到的麻烦是当我尝试修改存储过程然后将更改传播到我的代码时.例如,我向表中添加了一个附加列,然后更新了存储过程以将该列数据作为结果的一部分返回.我没有看到如何使更新传播到函数导入的东西,即,让生成的POCO为该添加的列具有新属性.

对程序进行更新的练习反映在C#方面?我每次都要上新课吗?对我而言,如何做到这一点并不明显.


附加信息:

当我尝试"更新"复杂类型时,正如Ladislav 对此问题的回复中所建议的那样,我收到一条错误消息"验证FunctionImport名称是否唯一".

如果我尝试EJ Brennan在下面建议的内容,我会收到相同的错误消息.

什么工作,至少对我来说,在记事本++打开Model.edmx文件,找到FunctionImport线,并删除它,然后重新生成.这不是理想的,但它确实奏效了.

entity-framework entity-framework-4.1

9
推荐指数
2
解决办法
2万
查看次数

OpenLaszlo的经验?

在一个相关的问题中,我询问了Web开发.我昨天遇到了一个名为OpenLaszlo的东西,并认为进行一些网站开发看起来很有趣.该网站上有很多很好的信息,他们有一些很好的教程等等,但是作为一个新手(就网络开发而言),我想知道是否有人会推荐这个.正如我在另一个问题中所说的那样,对我来说这是一个新世界,我有很多方向可以去.你可以比较/对比这个和你做过的其他网络开发吗?显然,这有点主观,但我没有在SO上听到太多,我希望对此有所了解.

openlaszlo

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

如何获取具有MEF插件的每个DLL的版本号?

我有很多实现的课程IDessertPlugin.这些可以在各种DLL中找到,我使用MEF来旋转它们的实例,以在我的应用程序中用作插件功能.

所以我想要做的是显示我使用MEF加载插件的DLL的版本号.在我的应用程序中加载的一个或多个DLL中定义了一个或多个插件.

现在我做的事情是这样的:

var catalog = new AggregateCatalog();
catalog.Catalogs.Add(
   new DirectoryCatalog(Path.Combine(
      Path.GetDirectoryName(Assembly.GetExecutingAssembly().location), "Plugins")));

var container = new CompositionContainer(catalog);

container.ComposeParts(this);
Run Code Online (Sandbox Code Playgroud)

这将从我的应用程序运行的Plugins子目录中加载插件.

做点什么

catalog.Catalogs.First().Parts.First().GetType().Assembly.FullName
Run Code Online (Sandbox Code Playgroud)

只返回"System.ComponentModel.Composition,Version = 4.0.0.0,..."

我希望能够知道的是我有CakePlugins.dll 1.0版和IceCreamPlugins.dll 1.1版.插件本身没有关于它们的版本属性 - 我想依赖DLL的版本.希望有道理.

我还没想出知道我在那里使用哪些DLL,以便我可以调用Assembly.GetName().Version它们.

想法?


解:

因此,在编写了部件之后,我的问题的解决方案非常简单.

我的插件管理代码有一个这样的条目:

[ImportMany(typeof(IDessertPlugin)]
private IEnumerable<IDessertPluing> dessertPlugins;
Run Code Online (Sandbox Code Playgroud)

一旦容器部件组成发生,我可以迭代我的插件,如下:

foreach(var plugin in dessertPlugins)
{
   Console.WriteLine(Assembly.GetAssembly(plugin.GetType()).GetName().Version.ToString());
}
Run Code Online (Sandbox Code Playgroud)

.net c# mef

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