我想读大TXT文件大小是500 MB,首先我使用
var file = new StreamReader(_filePath).ReadToEnd();
var lines = file.Split(new[] { '\n' });
Run Code Online (Sandbox Code Playgroud)
但它抛出内存异常然后我试图逐行读取但是在读取大约150万行之后再次抛出内存异常
using (StreamReader r = new StreamReader(_filePath))
{
while ((line = r.ReadLine()) != null)
_lines.Add(line);
}
Run Code Online (Sandbox Code Playgroud)
或者我用过
foreach (var l in File.ReadLines(_filePath))
{
_lines.Add(l);
}
Run Code Online (Sandbox Code Playgroud)
但我又一次收到了
mscorlib.dll中出现"System.OutOfMemoryException"类型的异常,但未在用户代码中处理
我的机器是功能强大的机器,有8GB的内存,所以它不应该是我的机器问题.
ps:我试图在NotePadd ++中打开这个文件,我收到'文件太大而无法打开'异常.
我有使用Postgresql作为数据库引擎的WPF应用程序.我想安装Postgresql引擎并将application-Db恢复/附加到它.
该应用程序的用户是非技术人员,他们无法单独安装Postgresql.
我做了一个简单的例子来更好地理解MVVM模式.以下是示例解决方案的链接,因为它很难解释整个问题:http: //www.2shared.com/file/jOOAnacd/MVVMTestMyCopy.html
有Employee模型(带Age属性)EmployeeViewModel,它包含Employee对象并Age在以下代码中更改其属性:
public int Age
{
get { return _employee.Age; }
set
{
if (value == _employee.Age)
return;
_employee.Age = value;
NotifyPropertyChanged("Age");
}
}
Run Code Online (Sandbox Code Playgroud)
EmployeeViewModel是从ViewModelBase具有标准INotifyPropertyCHanged代码的类继承的:
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(p));
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用ICommand来改变员工的年龄:
public void Increase()
{
this.SelectedEmployee.Age++;
NotifyPropertyChanged("Age");
}
Run Code Online (Sandbox Code Playgroud)
属性已更改,但绑定的TextBLock不会更改其值.我查了一下,发现NotifyPropertyChanged被调用,但是PropertyChanged是null.我还确保PeopleViewModel我的应用程序中只有一个.那么,为什么是PropertyChanged就是null?
编辑:这是完整的代码ViewModelBase:
public class ViewModelBase
{
public String …Run Code Online (Sandbox Code Playgroud) 在第一次加载我的Silverlight应用程序时,我不断收到此错误:
无法加载文件或程序集'System.Windows,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e'或其依赖项之一.该系统找不到指定的文件
但只需刷新页面,它就会被解决!
它似乎是已知的Silverlight错误:http: //connect.microsoft.com/VisualStudio/feedback/details/464190/silverlight-compilation-problem-in-team-build-environment
他们建议解决方法,但在我的情况下不起作用.
考虑一下我们有这三个列表:
List<string> l1= new List<string>(){"A","B","C"};
List<string> l2= new List<string>(){"A","C","B"};
List<string> l3= new List<string>(){"B","C"};
Run Code Online (Sandbox Code Playgroud)
我需要LINQ查询,其中l1包含l3但l2不包含l3.