小编Has*_*san的帖子

File.ReadAllLines或Stream Reader

我们可以通过使用StreamReader或使用来读取文件File.ReadAllLines.

例如,我想将每一行加载到每一行Liststring[]进行进一步操作.

string[] lines = File.ReadAllLines(@"C:\\file.txt");

foreach(string line in lines)
{
     //DoSomething(line);
}
Run Code Online (Sandbox Code Playgroud)

要么

using (StreamReader reader = new StreamReader("file.txt"))
{
    string line;

    while ((line = reader.ReadLine()) != null)
    {
       //DoSomething(line); or //save line into List<string>
    }
}

//if list is created loop through list here 
Run Code Online (Sandbox Code Playgroud)

应用程序遇到不同大小的文本文件.哪个可以从少数增长KBsMBs偶尔.

我的问题是,哪一个是首选方式,为什么一个应该优先于其他方式?

.net c# stream winforms

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

更改 GridView 单元格中文本的颜色而不更改边框颜色

我在 gridview 中显示数据并希望有条件地更改单元格中文本的颜色。

所以在RowDataBound网格上

if (e.Row.RowType == DataControlRowType.DataRow)
{
     if (((SurveyListHeader)(e.Row.DataItem)).PositionalConfidence != "G1" && ((SurveyListHeader)(e.Row.DataItem)).PositionalConfidence != "G3")
     {
          e.Row.Cells[3].ForeColor = System.Drawing.Color.Red;
        //e.Row.Cells[3].BorderColor = System.Drawing.Color.Black;
     }

     if (((SurveyListHeader)(e.Row.DataItem)).PositionalConfidence != "G2" && ((SurveyListHeader)(e.Row.DataItem)).PositionalConfidence != "G3")
     {
          e.Row.Cells[4].ForeColor = System.Drawing.Color.Red;
        //e.Row.Cells[4].BorderColor = System.Drawing.Color.Black;
     }
}
Run Code Online (Sandbox Code Playgroud)

然而,这也会导致边框颜色发生变化。

在此处输入图片说明

我曾尝试将边框颜色改回黑色,但这不起作用。
我尝试向单元格的 CSSStyleCollection 添加样式项,但仍然没有任何乐趣。

我已经看到其他人遇到了这个问题,但没有任何答案适合我。有什么建议?

css c# asp.net gridview

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

SaveFileDialog上的DialogResult.OK不起作用

我尝试,当我按下保存时,SaveFileDialog我做了一些事情.我尝试修复但总是出错.

SaveFileDialog dlg2 = new SaveFileDialog();
dlg2.Filter = "xml | *.xml";
dlg2.DefaultExt = "xml";
dlg2.ShowDialog();
if (dlg2.ShowDialog() == DialogResult.OK)
{....}
Run Code Online (Sandbox Code Playgroud)

但我有错误 - 可以说:

错误: 'System.Nullable'不包含'OK'的定义,并且没有扩展方法'OK'可以找到接受类型'System.Nullable'的第一个参数(你是否缺少using指令或汇编引用?)

我尝试修复此代码:

DialogResult result = dlg2.ShowDialog(); //here is error again
if (result == DialogResult.OK)
                {....}
Run Code Online (Sandbox Code Playgroud)

现在错误在DialogResult上说: 'System.Windows.Window.DialogResult'是一个'属性'但是像'类型'一样使用

c# wpf dialog dialogresult savefiledialog

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

计算 ObservableCollection 中等于 1 的项目数 - C#

我进行了 SQL 查询并将数据填充到 ObservableCollection。数据库包含许多列,因此我想计算特定列 = 1 的实例有多少个,然后将该数字返回为 int。

查询:

var test = from x in m_dcSQL_Connection.Testheaders 
           where dtStartTime <= x.StartTime && dtEndtime >= x.StartTime 
           select new {
                         x.N, 
                         x.StartTime, 
                         x.TestTime, 
                         x.TestStatus, 
                         x.Operator, 
                         x.Login,
                         x.DUT_id, 
                         x.Tester_id, 
                         x.PrintID 
                       };
Run Code Online (Sandbox Code Playgroud)

然后我通过以下方式将从数据库中提取的数据添加到可观察集合中:

lstTestData.Add(new clsTestNrData(item.N.ToString(), 
                    item.StartTime.ToString(), 
                    item.TestTime.ToString()
                    etc.....
Run Code Online (Sandbox Code Playgroud)

我想计算有多少次 TestStatus = 1。

我已经阅读过有关 .Count 属性的内容,但我不完全理解它在 ObservableCollections 上的工作原理。

有什么帮助吗?

c# sql count distinct observablecollection

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

Visual Studio无法识别我的构造函数?

我最近开始使用monogame,一切都很顺利,直到发生这种情况.我不是很有经验,所以这可能只是看起来很愚蠢,但我已经尝试了一切,这是我唯一的选择,所以这是我的构造函数:

public void qlayer(Vector2 position, Texture2D texture)
{
    this.position = position;
    this.texture = texture;
}
Run Code Online (Sandbox Code Playgroud)

"qlayer"是我的类的名称,但它一直说:"成员名称不能与它们的封闭类型相同",如果我不想构建一个构造函数,这将是有意义的!

为了安全起见,这是全班:

class qlayer
{
    Vector2 position;
    Point speed;
    Rectangle hitbox;
    Texture2D texture;
    Point currentFrame;
    int timeSinceLastFrame = 0;
    int millisecondsPerFrame;
    bool isFront = true;
    Point sheetSize = new Point(2,3);

    public void qlayer(Vector2 position, Texture2D texture, SpriteBatch spritebatch)
    {
        this.position = position;
        this.texture = texture;

    }

    enum PlayerAni
    {
        left, front, right
    };

    PlayerAni currentAni = PlayerAni.front;

    public void Update(GameTime gameTime)
    {
        timeSinceLastFrame += gameTime.ElapsedGameTime.Milliseconds; …
Run Code Online (Sandbox Code Playgroud)

c# xna constructor monogame

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

在c#中检测字符串中重复单词的麻烦?

我想检测并删除字符串中的重复项.

我的代码在这里:

        string Tests = "Hi,World,Me,Hi,You";
        string[] Tests_Array = Tests.Split(',');
        Regex FindDup = new Regex(@"(.+)\1", RegexOptions.IgnoreCase);
        string t2 = "";
        foreach (string test in Tests_Array)
        {
            MatchCollection allMatches = FindDup.Matches(test);

            foreach (Match item in allMatches)
            {
                t2 = FindDup.Replace(test, string.Empty);
                textBox1.Text += string.Format(@"Final: ""{0}""", t2) + "\n";
            }
        }
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

我不知道问题出在哪里?

谢谢你的帮助.

c# linq string duplicates string-comparison

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

修剪列表的最佳方法是什么?

我有一个字符串列表.它是在别处生成的,但我将在下面生成它来帮助描述这个简化的例子

var list = new List<string>();
list.Add("Joe");
list.Add("");
list.Add("Bill");
list.Add("Bill");
list.Add("");
list.Add("Scott");
list.Add("Joe");
list.Add("");
list.Add("");

list = TrimList(list);
Run Code Online (Sandbox Code Playgroud)

我想要一个函数,"trims"这个列表和修饰我想删除数组末尾的所有项目是空字符串(在这种情况下是最后两个).

注意:我仍然希望保留空白的数组,这是数组中的第二项(或任何其他不在最后的项目)所以我不能做.Where(r=> String.isNullOrEmpty(r))

c# linq collections

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

在字符串值中对数据排序

包含特定格式的日期和整数的字符串:MM/dd/yyyy(Number)

string strData = "01/23/2017 (5); 01/16/2017 (2);01/24/2017 (6);01/16/2017 (5);01/23/2017 (10)";
Run Code Online (Sandbox Code Playgroud)

基于以上我想要以下内容:

  1. 如果日期相似,请添加数字
  2. 排序应基于日期即升序

预期产出:

strData = "01/16/2017 (7);01/23/2017 (15);01/24/2017 (6)";    
Run Code Online (Sandbox Code Playgroud)

我知道有可能,如果我们在分号的基础上拆分,然后使用'for-loop'遍历值.

但请建议我linq解决方案.

c# linq sorting string date-format

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

编辑ini文件

我找到了一些与编辑ini文件的某个部分完美配合的代码,但它只选择了我要编辑的第一行实例.我知道我可以手动输入我想要开始编辑的代码中的所有索引,但是知道事情如何随着时间的推移而改变,可能会对ini文件进行更改,然后索引也会发生变化.有人能解释一下这个问题吗?

const string FileName = "File.ini";
string file= File.ReadAllText(FileName);

const string Pattern = @"pattern = (?<Number>)";

Match match = Regex.Match(config, Pattern, RegexOptions.IgnoreCase);

if (match.Success)
{
    int index = match.Groups["Number"].Index;

    string newText= **********;
    file = file.Remove(index, 21);
    file = file.Insert(index, newText);

    File.WriteAllText(FileName, file);
}  
Run Code Online (Sandbox Code Playgroud)

.net c# ini file edit

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