小编Hei*_*nzi的帖子

在公共字段上加入C#中两个列表的最有效方法是什么?

你能告诉我哪一个列表连接方法更有效,为什么?还是性能相同?有没有其他方法来处理这种情况(基于字段属性加入2个列表)?

我的代码:

public List<CombinedDatabaseStructure> Combine1(List<DatabaseStructure1> _Data1, List<DatabaseStructure2> _Data2)
{
    List<CombinedDatabaseStructure> combinedAll = new List<CombinedDatabaseStructure>();
    foreach (var row1 in _Data1)
    {
        foreach (var row2 in _Data2)
        {
            CombinedDatabaseStructure combined = new CombinedDatabaseStructure();
            if (row1.ID == row2.ID)
            {
                combined.DatabaseStructure1 = row1;
                combined.DatabaseStructure2 = row2;
                combinedAll.Add(combined);
            }
        }
    }

    return combinedAll;
}
Run Code Online (Sandbox Code Playgroud)

代码2:

public List<CombinedDatabaseStructure> Combine2(List<DatabaseStructure1> _Data1, List<DatabaseStructure2> _Data2)
{
    var joined = from item1 in _Data1.AsEnumerable() 
                 join item2 in _Data2.AsEnumerable() on item1.ID equals item2.ID
                 select new CombinedDatabaseStructure (item1,item2);

    return  joined.ToList<CombinedDatabaseStructure>();
}
Run Code Online (Sandbox Code Playgroud)

c# linq

2
推荐指数
1
解决办法
488
查看次数

如何(重新)在Visual Studio中启用实时CSS编辑?

在Visual Studio 2015中:

  1. 创建一个新的空C#ASP.NET Web应用程序(Framework 4.6).
  2. 添加WebForm1.aspx:

    <%@ Page Language="C#" %>
    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <link href="mycss.css" type="text/css" rel="stylesheet" />
    </head>
    <body>
        <div>Hello World</div>
    </body>
    </html>
    
    Run Code Online (Sandbox Code Playgroud)
  3. 添加mycss.css:

    div { color: red; }
    
    Run Code Online (Sandbox Code Playgroud)
  4. 右键单击WebForm1.aspx并选择"设置为起始页".

  5. 点击选中"Google Chrome"作为浏览器的"运行"按钮.
  6. 在Visual Studio中打开mycss.css并更改redblue.

请注意,在您完成输入的那一刻blue,Chrome中的颜色会变为蓝色.无需在Visual Studio中保存,无需在Chrome中重新加载.这个功能太棒了!

现在在Visual Studio 2017(15.3.5)中执行相同的操作.什么都没发生.我必须保存CSS文件重新加载浏览器页面以查看更改.

我该如何获得该功能?这是一些配置选项吗?还是故意弃用的功能?还是一个bug?

css c# asp.net google-chrome visual-studio-2017

2
推荐指数
1
解决办法
2049
查看次数

如何再次启动Visual Studio 2019输出窗口“默认可见”?

前一段时间,Visual Studio 2019告诉我,``输出''窗口导致Visual Studio的启动延迟为X秒,并让我在启动时隐藏了该窗口。

我接受了这个提议,现在,过了一段时间,我发现必须在每个Visual Studio会话中一次重新固定“输出”窗口是一件令人讨厌的事情,并且我希望将事情恢复到以前的样子。

我浏览了Visual Studio选项(特别是“环境” /“启动”和“环境” /“选项卡和Windows”),但没有找到撤消该更改的选项。我错过了什么?


我知道我可以将Visual Studio重置为默认设置,但是我想避免这种情况,因为那样我会丢失所有的自定义设置。(除非给出答案也证明没有其他选择,否则将不会提供任何暗示建议。)

我也知道我可以固定输出窗口,然后将布局“保存”为自定义布局。我不需要,我想修改启动时加载的“默认”布局。

visual-studio-2019

2
推荐指数
1
解决办法
101
查看次数

ASP.NET:单个应用程序中的多个Session对象

我有一个在Web服务器根目录运行的ASP.NET Web应用程序,它通过使用URL重定向提供多个(类似的)Web站点.举一个现实世界的例子:

http://webshopserver/company1/ProductList.aspx -> http://webshopserver/ProductList.aspx?showProductsFrom=company1
http://webshopserver/company2/ProductList.aspx -> http://webshopserver/ProductList.aspx?showProductsFrom=company2
...
Run Code Online (Sandbox Code Playgroud)

这很好用; 唯一的问题是,显然,所有这些不同的商店共享相同的会话对象(因为InProc会话管理器将会话对象存储在AppDomain中).我希望company1和company2的商店有不同的会话对象,例如,如果用户在同一浏览器窗口的不同选项卡中打开company1和company2的商店,则放入company1的购物车中的商品赢了不会出现在公司2的购物车中.

有一些明显的方法来解决这个我不喜欢的问题:

  • 创建我自己的Session对象,将所有内容封装到HashMap <CompanyName,无论是什么>中,然后将其存储在"真实"会话中:这会破坏使用会话对象的所有现有代码.
  • 使用http://company1.webshopserver/等URL 和通配符DNS记录,因为会话ID cookie与域绑定:这很丑陋(因为现实世界相当于"webshopserver"已经足够长了).
  • 编写我自己的自定义会话提供程序:这有点像重新发明轮子.
  • 为每家公司创建一个单独的IIS应用程序:无法工作,因为创建新公司应该可以通过http://webshopserver/CreateYourOwnWebshop.aspx之类的东西来实现,之后不需要任何人工(服务器管理员)干预.

我正在考虑更多的解决方案:

因此,任何有关如何实现这些要点之一的信息(或者可能完全不同的解决方案)都会有所帮助.

asp.net session

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

string.split vb.net

我在数据库中有一个文本,它是"计算机硬件".我用那段代码拆分了

            ' string seperated by colons '-'
            Dim info As String = strcotegory

            Dim arInfo As String() = New String(3) {}

            ' define which character is seperating fields
            Dim splitter As Char() = {"-"c}

            arInfo = info.Split(splitter)

            For x As Integer = 0 To arInfo.Length - 1
                Response.Write(arInfo(x) & "</br>  ")
            Next
Run Code Online (Sandbox Code Playgroud)

但现在我想在textbox1中获得"计算机",在textbox2中获得"硬件".

请指导我

vb.net

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

如何绑定到静态属性的子属性的附加属性

我有以下代码

public static class StaticClass
{
    public static Instance Inst { get; set; }
}

public class Instance
{
    public Button Butt { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我需要绑定到Grid.Row附加到Butt按钮的属性。我试过这个:

{Binding Source={x:Static local:StaticClass.Inst.Butt}, Path=(Grid.Row)}
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为Butt它不是静态属性。通常我使用 x:Static 绑定到静态属性并将其余部分写入 Path,但在这种情况下,Path 包含附加属性。我不知道该怎么做。

.net c# data-binding wpf xaml

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

我可以依赖OSVERSIONINFO.szCSDVersion或Environment.OSVersion.ServicePack来始终采用"Service Pack X"的形式吗?

标题基本上都说明了一切.我需要确定Windows Service Pack编号(以数字形式),而Environment.OSVersion.ServicePack(基本上只返回OSVERSIONINFO.szCSDVersion)只返回一个字符串.

在我所有的测试,这串竟然是形式""(无服务包),或者"Service Pack X",与X作为一个数字.所以解析它的算法应该非常简单.

我的问题:我可以依赖这个字符串来始终拥有这种格式吗?

(我的一部分说不,因为它没有记录.另一部分说是的,因为如果MS决定返回,例如,"SP 2 (x86)"对于Windows 7 SP2 ,肯定很多现有代码会破坏.因此,他们不会这样做有没有人有更多的信息呢?)

.net c# winapi servicepacks operating-system

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

Windows对话框:何时使用"确定+取消"以及何时使用"保存+取消".是Windows标准吗?

什么时候在对话框中和"保存+取消"时使用OK +取消.我看过它们可以互换使用.有窗户标准吗?

.net standards user-interface winforms

0
推荐指数
1
解决办法
371
查看次数

检查鼠标是否在游戏窗口内

我正在使用XNA来显示窗口中的3D场景(=不是全屏).用户可以单击并拖动鼠标来移动相机:

Public Sub New()
    ...
    Me.IsMouseVisible = True
    Me.Window.AllowUserResizing = True
    ...
End Sub

Protected Overrides Sub Update(ByVal gameTime As Microsoft.Xna.Framework.GameTime)
    Dim m = Mouse.GetState()

    ' Change camera position based on m
    ...
End Sub
Run Code Online (Sandbox Code Playgroud)

这有效.问题是,当鼠标不在游戏窗口内时,这甚至可以工作,这看起来有点奇怪(我在Outlook中移动邮件,而另一个窗口中的3D场景开始转动).

我找不到Mouse.IsInsideGameWindow()房产.还有什么我可以(轻松)做到避免这种情况吗?

.net xna

0
推荐指数
1
解决办法
2383
查看次数

SQL Server:如何从选择值使用变量tablename

 SELECT
 (
     SELECT SUM(ISNULL(Volume,0))
       FROM Order_?a1.Login?
      WHERE Login = a1.Login
 ) AS SelfVolume
 FROM dbo.Account a1
Run Code Online (Sandbox Code Playgroud)

我希望子选择(【a1.Login】)中的表名匹配a1.Login外部select语句(Login表的字段Account)中的值.我怎样才能得到这个结果?

sql-server

0
推荐指数
1
解决办法
57
查看次数

Chr(34)返回两个双引号字符而不是一个

使用Windows 10/Visual Studio 2017/VB.Net Win Forms应用程序.

出于某种原因,Chr(34)返回""而不是".

其他角色似乎工作得很好.这是我的即时窗口输出:

?Chr(34)
""""c
?Chr(39)
"'"c
Run Code Online (Sandbox Code Playgroud)

vb.net string winforms

0
推荐指数
1
解决办法
2410
查看次数

我可以使用LINQ来查明列表中的给定属性是否重复?

我有一个对象列表,上面有一个名称字段.

我想知道是否有办法判断列表中的所有名称字段是否唯一.

我可以做两个循环并迭代列表中的每个值,但我想知道是否有更简洁的方法来使用LINQ做到这一点?

我找到了一些例子,他们将列表中的每个项目与硬编码值进行比较,但在我的情况下,我想比较每个对象之间的名称字段,并获得一个布尔值.

c# linq

0
推荐指数
1
解决办法
87
查看次数

添加示例代码后XML文档出错

我正在尝试为我编写的API编写一些文档.C#编译器不会为此特定方法生成文档.它说XML文档格式不正确.

你能帮我辨认一下它的不良形象吗?我已多次检查代码,但我找不到问题.不幸的是,C#编译器不会告诉我哪一行导致了问题.

/// <summary>
/// Given a value pertaining to a specific culture, let's call it the value culture, 
/// this method returns a sequence of resource keys and their values in another culture, 
/// let's call this the desired culture, based on a search of matching values in the value culture. 
/// The search can further be filtered based on metadata.
/// </summary>
/// <typeparam name="T">Represents the System.Type of value to look up and return.</typeparam>
/// <param name="value">The value …
Run Code Online (Sandbox Code Playgroud)

c# xml-documentation

-3
推荐指数
1
解决办法
64
查看次数