我不小心执行了一个git rm . -r --cached
命令,该命令使所有文件都处于删除状态。我有一些我不想丢失的未提交更改。如何git rm . -r --cached
在不丢失任何未提交的更改的情况下撤消命令的效果并返回到以前的状态?
最近,我一直在进行类型绑定的测试,该绑定实现INotifyPropertyChanged
了工作线程抛出跨线程问题并更新了属性。
这是示例代码:
public class MyViewModel : INotifyPropertyChanged
{
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value)
{
_name = value;
OnPropertyChanged("Name");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler hanlder = PropertyChanged;
if(hanlder != null)
hanlder(this, new PropertyChangedEventArgs(propertyName));
}
}
Run Code Online (Sandbox Code Playgroud)
上面的viewmodel已与Windows窗体中的标签文本绑定,并从工作线程更新标签值。
从辅助线程更新label1文本会导致跨线程问题:
public partial class MainForm : Form
{
private MyViewModel _myViewModel = new MyViewModel();
public MainForm()
{
InitializeComponent();
Btn1.Click += Btn1_Click; …
Run Code Online (Sandbox Code Playgroud) 我一直在研究对象的排序,需要对字符串进行排序,该字符串具有整数值,如"1","2".但LINQ OrderBy或SOrt inplace本身没有正确排序:
以下代码可以重现我的问题:
var listStr = new List<string>()
{
"1",
"100",
"12"
};
var sortedList = listStr.OrderBy(x => x);
var desList = listStr.OrderByDescending(x => x);
Run Code Online (Sandbox Code Playgroud)
这里,SortedList按以下顺序:"1","100","12"和deslist是"12","100","12"
我对C#排序中的字符串比较方式感到困惑.我对不工作的原因感兴趣.