我们可以通过使用StreamReader
或使用来读取文件File.ReadAllLines
.
例如,我想将每一行加载到每一行List
或string[]
进行进一步操作.
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)
应用程序遇到不同大小的文本文件.哪个可以从少数增长KBs
到MBs
偶尔.
我的问题是,哪一个是首选方式,为什么一个应该优先于其他方式?
我在 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 添加样式项,但仍然没有任何乐趣。
我已经看到其他人遇到了这个问题,但没有任何答案适合我。有什么建议?
我尝试,当我按下保存时,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'是一个'属性'但是像'类型'一样使用
我进行了 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 上的工作原理。
有什么帮助吗?
我最近开始使用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) 我想检测并删除字符串中的重复项.
我的代码在这里:
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)
但它不起作用.
我不知道问题出在哪里?
谢谢你的帮助.
我有一个字符串列表.它是在别处生成的,但我将在下面生成它来帮助描述这个简化的例子
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))
包含特定格式的日期和整数的字符串: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)
基于以上我想要以下内容:
预期产出:
strData = "01/16/2017 (7);01/23/2017 (15);01/24/2017 (6)";
Run Code Online (Sandbox Code Playgroud)
我知道有可能,如果我们在分号的基础上拆分,然后使用'for-loop'遍历值.
但请建议我linq解决方案.
我找到了一些与编辑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) c# ×9
linq ×3
.net ×2
string ×2
asp.net ×1
collections ×1
constructor ×1
count ×1
css ×1
date-format ×1
dialog ×1
dialogresult ×1
distinct ×1
duplicates ×1
edit ×1
file ×1
gridview ×1
ini ×1
monogame ×1
sorting ×1
sql ×1
stream ×1
winforms ×1
wpf ×1
xna ×1