javascript

java

python

c#

node.js

android

reactjs

c++

php

jquery

html

css

git

ruby-on-rails

.net

ios

sql

c

string

ruby

linq-在C#中逐行读取文件

我正在尝试读取一些文本文件,其中每一行都需要处理。 目前,我只是使用StreamReader,然后分别读取每一行。

我想知道是否有更有效的方法(就LoC和可读性而言)使用LINQ来做到这一点,而又不影响运营效率。 我所看到的示例涉及将整个文件加载到内存中,然后进行处理。 但是,在这种情况下,我认为这样做不会非常有效。 在第一个示例中,文件最多可以存储50k,在第二个示例中,不需要读取文件的所有行(大小通常小于10k)。

您可能会争辩说,如今对于这些小文件而言,这已经不那么重要了,但是我认为这种方法会导致代码效率低下。

第一个例子:

// Open file
using(var file = System.IO.File.OpenText(_LstFilename))
{
    // Read file
    while (!file.EndOfStream)
    {
        String line = file.ReadLine();

        // Ignore empty lines
        if (line.Length > 0)
        {
            // Create addon
            T addon = new T();
            addon.Load(line, _BaseDir);

            // Add to collection
            collection.Add(addon);
        }
    }
}

第二个例子:

// Open file
using (var file = System.IO.File.OpenText(datFile))
{
    // Compile regexs
    Regex nameRegex = new Regex("IDENTIFY (.*)");

    while (!file.EndOfStream)
    {
        String line = file.ReadLine();

        // Check name
        Match m = nameRegex.Match(line);
        if (m.Success)
        {
            _Name = m.Groups[1].Value;

            // Remove me when other values are read
            break;
        }
    }
}
trans by 2019-10-16T01:39:13Z

C#-ModelState.IsValid即使不应该?

我有需要验证用户模型的API。 我选择一种方法,在其中为“创建/编辑”操作创建不同的类,以避免批量分配,并将验证和实际模型分开。

我不知道为什么,但是ModelState.IsValid即使在不应该返回的情况下也返回true。 难道我做错了什么?

调节器

public HttpResponseMessage Post(UserCreate user)
{
    if (ModelState.IsValid) // It's valid even when user = null
    {
        var newUser = new User
        {
            Username = user.Username,
            Password = user.Password,
            Name = user.Name
        };
        _db.Users.Add(newUser);
        _db.SaveChanges();
        return Request.CreateResponse(HttpStatusCode.Created, new { newUser.Id, newUser.Username, newUser.Name });
    }
    return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}

模型

public class UserCreate
{
    [Required]
    public string Username { get; set; }
    [Required]
    public string Password { get; set; }
    [Required]
    public string Name { get; set; }
}

调试证明

proof

trans by 2019-10-16T00:25:32Z

c#-将ListBox.items转换为通用lis的最简洁方法

我正在使用C#,并以.NET Framework 3.5为目标。 我正在寻找一个简洁,高效的代码段,将ListBox中的所有项目复制到List<String>(通用列表)中。

目前,我有一些类似于以下代码的内容:

        List<String> myOtherList =  new List<String>();
        // Populate our colCriteria with the selected columns.

        foreach (String strCol in lbMyListBox.Items)
        {
            myOtherList.Add(strCol);
        }

当然,哪种方法有效,但是我不禁感到,使用某些较新的语言功能,必须有更好的方法来做到这一点。 我在想类似List.ConvertAll方法的方法,但这仅适用于通用列表,不适用于ListBox.ObjectCollection集合。

trans by 2019-10-15T21:30:13Z

c#-读取Excel文件(.xls / .xlsx)的最佳方法

我知道有多种读取Excel文件的方法:

  • excel file
  • excel file
  • excel file

兼容性不是问题,因为程序将在受控环境中执行。

我的要求:
将文件读取到excel file / CUstom Entities(我不知道如何为对象创建动态属性/字段[列名在Excel文件中会有所不同])

使用excel file使用其数据执行某些操作。

使用操作结果更新excel file

将其写回excel file

这会更简单。

另外,如果可能的话,请教我有关自定义实体的信息(将属性/字段动态添加到对象)

trans by 2019-10-15T20:56:10Z

CodeGo.net>如何创建一个新的深拷贝(克隆)的List <T>?

在下面的代码中,

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace clone_test_01
{

    public partial class MainForm : Form
    {

        public class Book
        {
            public string title = "";

            public Book(string title)
            {
                this.title = title;
            }
        }


        public MainForm()
        {
            InitializeComponent();

            List<Book> books_1 = new List<Book>();
            books_1.Add(  new Book("One")  );
            books_1.Add(  new Book("Two")  );
            books_1.Add(  new Book("Three")  );
            books_1.Add(  new Book("Four")  );

            List<Book> books_2 = new List<Book>(books_1);

            books_2[0].title = "Five";
            books_2[1].title = "Six";

            textBox1.Text = books_1[0].title;
            textBox2.Text = books_1[1].title;
        }
    }

}

我使用Book对象类型创建books_1,并在其中填充一些项目,使它们具有唯一的标题(从“一个”到“五个”)。

然后创建Book

从这一点来看,我知道这是列表对象的克隆,但Book中的book对象仍然是books_1中book对象的引用。通过对books_2的前两个元素进行更改,然后检查这些相同的元素,可以证明这一点。 TextBox中的book_1

Book实际上确实已更改为books_1的新值。

现在的问题

我们如何创建Book的新硬拷贝? 该想法是books_1和2570816994236957957698变得彼此完全独立。

我很失望,微软没有像Ruby那样使用Book方法提供一种简洁,快速,简便的解决方案。

助手们真的很棒的是使用我的代码并使用可行的解决方案对其进行更改,以便可以对其进行编译和工作。 我认为这将真正帮助尝试了解此问题的新手的新手。

编辑:请注意Book类可能更复杂并且具有更多属性。 我试图使事情简单。

trans by 2019-10-15T20:13:22Z

.net 3.5-在C#中使用扩展方法时出错

我遇到一个问题,使我认为3.0框架中存在错误。 当我尝试使用扩展方法时,出现以下错误:

Missing compiler required member
'System.Runtime.CompilerServices.ExtensionAttribute..ctor'

使用此简单代码时:

public static class StringUtils {
    static void TestExtension(this String targetString) {

    }
}

使该编译错误消失的唯一方法是添加以下代码:

namespace System.Runtime.CompilerServices {
    public class ExtensionAttribute : Attribute { }
}

自从我使用扩展方法已经有几个月了,但是我很确定我不必这样做。 还有其他人遇到这个问题吗?

trans by 2019-10-15T19:53:09Z

转换DataRowCollection到IEnumerable <T>

我想在.NET 3.5中执行类似的操作。 最快的方法是什么?

IEnumerable<DataRow> collection = 
    TypedDataSet.TypedTableBase<DataRow>.Rows as IEnumerable<DataRow>;
trans by 2019-10-15T19:21:03Z

c#-EndInvoke()是可选的,排序的可选的还是绝对不是可选的?

关于是否每个BeginInvoke()是否必须由EndInvoke()进行匹配,我已经读到了相互矛盾的观点。 与不调用EndInvoke()有关的泄漏或其他问题吗?

trans by 2019-10-15T18:52:10Z

c#-带Nullable <value>类型的条件运算符分配?

EmployeeNumber =
string.IsNullOrEmpty(employeeNumberTextBox.Text)
    ? null
    : Convert.ToInt32(employeeNumberTextBox.Text),

我经常发现自己想做这样的事情(EmployeeNumberNullable<int>,因为它是LINQ-to-SQL dbml对象的属性,其中该列允许NULL值)。 不幸的是,即使这两种类型在对可空int的赋值操作中都是有效的,编译器仍认为“在'null'和'int'之间没有隐式转换”。

据我所知,空合并合并运算符不是一个选项,因为如果不为null,则需要在.Text字符串上进行内联转换。

据我所知,唯一的方法是使用if语句和/或分两步进行赋值。 在这种特殊情况下,我感到非常沮丧,因为我想使用对象初始化器语法,并且此分配将在初始化块中...

有人知道更优雅的解决方案吗?

trans by 2019-10-15T18:46:48Z

c#-强制XmlSerializer将DateTime序列化为'YYYY-MM-DD hh:mm:ss'

我有一些RESTful服务的XSD架构。 与YYYY-MM-DD hh:mm:ss工具结合使用以生成C#代码时,XSD的2010-08-20T20:07:03.915039Z生成以下代码:

[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="date")]
public System.DateTime time {
    get {
        return this.timeField;
    }
    set {
        this.timeField = value;
    }
}

使用YYYY-MM-DD hh:mm:ss将XML反序列化为对象时,一切似乎都很好。 我面临的问题是该服务期望日期格式为2010-08-20T20:07:03.915039Z,而XSD生成的代码似乎只产生YYYY-MM-DD

如果我将XSD手动修改为YYYY-MM-DD hh:mm:ss类型,则生成的C#代码将产生:2010-08-20T20:07:03.915039Z

基本上,如何强制序列化产生YYYY-MM-DD hh:mm:ss? 是否可以对XSD进行某些操作,或者可以对生成的C#代码进行更改?

trans by 2019-10-15T17:12:55Z

C#-ConcurrentDictionary.TryAdd会失败吗?

这更多是一个学术问题...但是ConcurrentDictionary.TryAdd会失败吗? 如果是,在什么情况下,为什么?

trans by 2019-10-15T15:51:12Z

c#-安装.N中开发的Windows服务时出错

我已经使用C#,visual studio 2008开发了Windows服务。我的计算机上安装了Windows XP SP2。 当我尝试使用installutil工具安装服务时,输入用户名和密码后,出现以下错误。

在安装阶段发生异常。   System.ComponentModel.Win32Exception:帐户名无效或不存在,或者密码对于指定的帐户名无效。

但是用户确实存在。 我已经通过控制面板->用户帐户->创建新帐户创建了用户。我用于安装服务的命令是installutil / i TestService.exe

我无法解决问题。

提前致谢

桑巴

trans by 2019-10-15T15:23:17Z

asp.net-为什么我应该在C#中使用int而不是字节或short

我发现了一些有关此问题的话题。 即使字节或smallint会处理数据,除非它是移动应用程序,否则大多数人似乎更喜欢在整个C#代码中使用int。 我不明白为什么。 将C#数据类型定义为与数据存储解决方案中相同的数据类型是否更有意义?

我的前提:如果我使用类型化的数据集,Linq2SQL类,POCO(一种或另一种),如果我不使我的数据类型在各层之间保持同步,则会遇到编译器数据类型转换问题。 我真的不喜欢做System.Convert,只是因为在c#代码中使用int更容易。 我一直使用所需的最小数据类型来处理数据库以及代码中的数据,以保持与数据库的接口整洁。 因此,我敢打赌我的C#代码中有75%是使用字节或短整数而不是整数,因为这就是数据库中的内容。

可能性:这是否意味着大多数只将int用于代码中所有内容的人也将int数据类型用于其sql存储数据类型,并且可能不太在意数据库的整体大小,还是在适用的情况下对代码进行system.convert?

我为什么在乎:我一直致力于自己的工作,我只想熟悉最佳实践和标准编码约定。

trans by 2019-10-15T14:43:41Z

winforms-如何为我的C#应用程序制作安装程序?

我已经在Visual Studio 2008中创建了一个应用程序(C#,Windows窗体),现在我想制作该应用程序的安装程序。 如何才能做到这一点?

我想要我的安装程序

  • 复制所有文件应用程序正在使用给用户选择的路径(将文件复制到选择的,一些用于服务器端应用程序,一些用于客户端)。
  • 同时安装.NET 3.5
  • 检查SQL Server或SQL Server Express Edition

我该怎么做?

trans by 2019-10-15T11:48:09Z

C#:事件还是观察者接口? 优点缺点?

我有以下内容(简化):

interface IFindFilesObserver
{
    void OnFoundFile(FileInfo fileInfo);
    void OnFoundDirectory(DirectoryInfo directoryInfo);
}

class FindFiles
{
    IFindFilesObserver _observer;

    // ...
}

...我很矛盾。 这基本上就是我用C ++编写的内容,但是C#具有事件。 我应该更改代码以使用事件,还是应该单独使用它?

与传统的观察者界面相比,事件的优缺点是什么?

trans by 2019-10-15T11:07:26Z

如何在项目中使用C#类库?

我已经在C#中创建了一个新的类库,并希望在我的其他C#项目之一中使用它-如何做到这一点?

trans by 2019-10-15T10:08:45Z

c#-ASP.NET Core 1.0 Web API中的简单JWT身份验证

我正在寻找最简单的方法来设置Web API服务器,该服务器使用JWT在ASP.NET Core(又名ASP.NET 5)中进行身份验证。 这个项目(博客文章/ github)完全满足我的要求,但是它使用ASP.NET 4。

我只希望能够:

  1. 设置可以创建JWT令牌并在标头中返回的登录路由。 我正在将其与现有的RESTful服务集成,该服务将告诉我用户名和密码是否有效。 在ASP.NET 4项目中,我正在研究使用以下路由完成此操作[https://github.com/stewartm83/Jwt-WebApi/blob/master/src/JwtWebApi/Controllers/AccountController.cs#L24 -L54]

  2. 拦截对需要授权的路由的传入请求,解密并验证进入标头的JWT令牌,并使JWT令牌的有效负载中的用户信息可被路由访问。 例如 像这样的东西:[https://github.com/stewartm83/Jwt-WebApi/blob/master/src/JwtWebApi/App_Start/AuthHandler.cs]

我在ASP.NET Core中看到的所有示例都非常复杂,并且依赖于我希望避免的OAuth,IS,OpenIddict和EF的部分或全部。

谁能指出我在ASP.NET Core中如何执行此操作的示例,或帮助我开始使用它?

编辑:答案我最终使用了以下答案:[https://stackoverflow.com/a/33217340/373655]

trans by 2019-10-15T09:55:51Z

删除所有DataGrid行和单元格边框

我想隐藏(或删除)我的数据网格中所有行(以及随后的单元格)的所有边框,想想一个基本的HTML表。 我四处张望,大多数问题似乎都是关于样式设计而不是隐藏它们。

我已经尝试过像这样设置BorderBrush和BorderThickness:

 <DataGrid.RowStyle>
     <Style TargetType="DataGridRow">
         <Setter Property="BorderBrush" Value="Transparent" />
         <Setter Property="BorderThickness" Value="0" />
     </Style>
  </DataGrid.RowStyle>

尝试了相同的CellStyle,但没有骰子,仍然有边框。

trans by 2019-10-15T08:35:22Z

如何使用C#监视SQL Server表更改?

我有多个应用程序正在访问同一数据库,并且如果这些应用程序之一更改了某个表中的任何内容(更新,插入),我需要得到通知。

数据库和应用程序不在同一服务器上。

trans by 2019-10-15T08:26:04Z

如何从.NET流中获取MemoryStream?

我有以下构造函数方法,该方法从文件路径打开MemoryStream

MemoryStream _ms;

public MyClass(string filePath)
{
    byte[] docBytes = File.ReadAllBytes(filePath);
    _ms = new MemoryStream();
    _ms.Write(docBytes, 0, docBytes.Length);
}

我需要更改它以接受Stream而不是文件路径。 从Stream对象中获取MemoryStream的最简单/最有效的方法是什么?

trans by 2019-10-15T07:51:26Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共226页