小编Fed*_*dor的帖子

如何对通用列表DESC和ASC进行排序?

如何对通用列表DESC和ASC进行排序?使用LINQ而不使用LINQ?我正在使用VS2008.

class Program
{
    static void Main(string[] args)
    {
        List<int> li = new List<int>();

        li.Add(456);
        li.Add(123);
        li.Add(12345667);
        li.Add(0);
        li.Add(1);

        li.Sort();

        foreach (int item in li)
        {
            Console.WriteLine(item.ToString() + "\n");
        }

        Console.ReadKey();
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# linq

101
推荐指数
4
解决办法
17万
查看次数

从文件打开图像,然后释放锁定?

我正在使用以下代码行Image从文件中打开:

pictureBox1.Image = Image.FromFile("test.png");
Run Code Online (Sandbox Code Playgroud)

我希望它能锁定文件,将图像加载到内存中,设置pictureBox1.Image为内存中的副本,然后释放锁定.在现实中,锁不会消失,直到我Dispose()Image记忆.我无法释放我不再使用的硬盘上的文件锁,直到我删除了我正在使用的内存中的文件. 微软的网站在一篇带有C#标签的文章中提及它,但他们的解决方案是用visual basic编写的,这对我来说毫无用处.

总结:我想设置pictureBox1.Image存储的图像"test.png",然后让用户编辑或删除"test.png"或其他.

c# locking image winforms

67
推荐指数
3
解决办法
5万
查看次数

lodash使用值数组过滤集合

我想使用属性值数组过滤集合.给定一组ID,返回具有匹配ID的对象.是否有使用lodash/的快捷方法underscore

var collections = [{ id: 1, name: 'xyz' },
                   { id: 2,  name: 'ds' },
                   { id: 3,  name: 'rtrt' },
                   { id: 4,  name: 'nhf' },
                   { id: 5,  name: 'qwe' }];
var ids = [1,3,4];

// This works, but any better way?

var filtered = _.select(collections, function(c){    
    return ids.indexOf(c.id) != -1
});
Run Code Online (Sandbox Code Playgroud)

underscore.js lodash

53
推荐指数
5
解决办法
6万
查看次数

如何获取站点根URL?

我想动态获取ASP.NET应用程序的绝对根URL.这需要是以下形式的应用程序的完整根URL:http(s):// hostname(:port)/

我一直在使用这种静态方法:

public static string GetSiteRootUrl()
{
    string protocol;

    if (HttpContext.Current.Request.IsSecureConnection)
        protocol = "https";
    else
        protocol = "http";

    StringBuilder uri = new StringBuilder(protocol + "://");

    string hostname = HttpContext.Current.Request.Url.Host;

    uri.Append(hostname);

    int port = HttpContext.Current.Request.Url.Port;

    if (port != 80 && port != 443)
    {
        uri.Append(":");
        uri.Append(port.ToString());
    }

    return uri.ToString();
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我没有HttpContext.Current范围怎么办?我遇到过这样的情况CacheItemRemovedCallback.

asp.net

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

在WCF服务中传输大量数据

我在WCF中创建了一个Web服务,它返回超过54000个数据行,每行有10个数据.我使用wsHttpBinding进行通信.该服务适用于较少的数据(即2000行)但在尝试发送50000+行(~2MB)的大型记录集时会爆炸.异常消息是这样的

收到HTTP响应时发生错误http://localhost:9002/MyService.svc.这可能是由于服务端点绑定不使用HTTP协议.这也可能是由于服务器中止HTTP请求上下文(可能是由于服务关闭).请参阅服务器日志以获取更多详

请不要告诉我在客户端使用分页 - 我知道它会解决问题.但我需要客户端的整个数据块.

我在服务器上的服务配置是

<system.serviceModel>
  <bindings>
    <wsHttpBinding>
      <binding name="MyWsHttpBinding" />
    </wsHttpBinding>
  </bindings>
  <services>
    <service name="AdminService">
      <endpoint address="AdminSrv"
                binding="wsHttpBinding"
                contract="IAdminService"/>
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      <host>
        <baseAddresses>
          <add baseAddress="/Bus/IRfotoWCF" />
        </baseAddresses>
      </host>
    </service>
  </services>
  <behaviors>
    <serviceBehaviors>
      <behavior>
        <!-- To avoid disclosing metadata information, 
                  set the value below to false and remove the metadata endpoint above before deployment -->
        <serviceMetadata httpGetEnabled="True"/>
        <!-- To receive exception details in faults for debugging purposes, 
                  set the value below to …
Run Code Online (Sandbox Code Playgroud)

wcf wcf-binding wcf-data-services

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

如何检查DataGridView是否包含"x"列并且"x"列是否可见?

如何检查是否DataGridView包含"x"列和"x"列?

到目前为止我所有的一切都在下面.

if (Dgv.Columns.Contains("Address") & ....
Run Code Online (Sandbox Code Playgroud)

谢谢

c# datagridview winforms

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

在WPF中覆盖样式值的正确方法

我想编辑DataGridWPF中的单元格样式.所以使用Expression Blend我右转到 - 对象和时间轴>> DataGrid >>编辑其他模板>>编辑CellStyle >>编辑副本
这是页面上显示的内容:

<SolidColorBrush x:Key="{x:Static DataGrid.FocusBorderBrushKey}" Color="#FF000000"/>
<Style x:Key="DataGridCellStyle1" TargetType="{x:Type DataGridCell}">
    <Setter Property="Background" Value="Transparent"/>
    <Setter Property="BorderBrush" Value="Transparent"/>
    <Setter Property="BorderThickness" Value="1"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type DataGridCell}">
                <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
                    <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Style.Triggers>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
            <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}"/>
            <Setter Property="BorderBrush" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
        </Trigger>
        <Trigger Property="IsKeyboardFocusWithin" Value="True">
            <Setter Property="BorderBrush" Value="{DynamicResource {x:Static DataGrid.FocusBorderBrushKey}}"/>
        </Trigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

但我只想改变填充和背景.相反,它给了我25行代码,包括单元格模板!我错过了什么,有没有更好的方式来设计这样的项目,而不必在我只想更改两个项目时带来如此多的额外不必要的代码?

c# wpf xaml

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

将单个XElement转换为对象

我有一个XElement看起来像这样:

<row flag="1" sect="" header="" body="" extrainfo="0" />
Run Code Online (Sandbox Code Playgroud)

然后我有一个看起来像这样的课:

public class ProductAttribute
{
    public string Flag { get; set; }
    public string Sect { get; set; }
    public string Header { get; set; }
    public string Body { get; set; }
    public string Extrainfo { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如何将其XElement转换为ProductAttribute对象?

.net c# xml xelement linq-to-xml

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

获取Windows服务的PID

谁能帮助我知道如何获得Windows服务的PID?
我需要获取PID才能运行以下命令:

Process.Start(new ProcessStartInfo 
    {
        Filename = "cmd.exe",
        CreateNoWindow = true,
        UseShellExecute = false,
        Arguments = string.Format("/c taskkill /pid {0} /f", pidnumber)
    });
Run Code Online (Sandbox Code Playgroud)

.net c# windows-services

15
推荐指数
2
解决办法
9337
查看次数

如何使用OpenXML从Excel工作表中检索选项卡名称

我有一个电子表格文档,其中包含182列.我需要将电子表格数据放在数据表中,逐个标签,但我需要找出,因为我正在添加每个选项卡中的数据,选项卡名称是什么,并将选项卡名称添加到数据表中的列.

这就是我设置数据表的方法.

然后我循环进入工作簿并深入到sheetData对象并遍历每一行和每列,获取单元格数据.

DataTable dt = new DataTable();
for (int i = 0; i <= col.GetUpperBound(0); i++)
{
    try
    {
        dt.Columns.Add(new DataColumn(col[i].ToString(), typeof(string)));
    }
    catch (Exception e)
    {
        MessageBox.Show("Uploader  Error" + e.ToString());
        return null;
    }
}

dt.Columns.Add(new DataColumn("SheetName", typeof(string)));
Run Code Online (Sandbox Code Playgroud)

但是,在我用于数据表的字符串数组的末尾,我需要添加选项卡名称.当我在Open XML中的表格中循环时,如何找到选项卡名称?

到目前为止,这是我的代码:

using (SpreadsheetDocument spreadSheetDocument = 
           SpreadsheetDocument.Open(Destination, false))
{
    WorkbookPart workbookPart = spreadSheetDocument.WorkbookPart;
    Workbook workbook = spreadSheetDocument.WorkbookPart.Workbook;

    Sheets sheets = 
        spreadSheetDocument
            .WorkbookPart
            .Workbook
            .GetFirstChild<DocumentFormat.OpenXml.Spreadsheet.Sheets>();

    OpenXmlElementList list = sheets.ChildElements;

    foreach (WorksheetPart worksheetpart in workbook.WorkbookPart.WorksheetParts)
    {
        Worksheet worksheet = worksheetpart.Worksheet; …
Run Code Online (Sandbox Code Playgroud)

.net c# excel openxml openxml-sdk

14
推荐指数
3
解决办法
4万
查看次数