我刚刚注意到我的Eclipse(版本Luna)在JRE而不是JDK上运行.我想知道这一点,因为我的环境变量被正确设置为!User-Variables!(JAVA_HOME并添加到PATH值中).
我不是一个绝对的初学者,所以我肯定知道JDK是针对开发人员的(顾名思义),还包括JRE.我完全惊讶于Eclipse,它是为了开发而构建的,只能访问运行时环境.
也许我错了,在配置"安装JRE"时,它只能访问JVM之类的东西,并在另一点上访问JDK?!
当我试图用标准类方法解决参数名称的问题(得到arg0,arg1等)时,我偶然发现了这一点,并发现没有附加javadoc.
现在我想知道我是否应该在Windows => Preferences => Java => Installed JREs中选择JRE或JDK?我敢说,运行配置了JDK的程序会降低它的速度,因为JDK的文件夹包含更多数据,因此具有更大的大小.什么是"正常"配置?!
我只是想正确配置Eclipse并缩小我的知识差距,我显然已经在这种情况下.
这3种方式之间的区别是什么:
Application xlApp = new Application();
Workbooks xlWorkbooks = xlApp.Workbooks;
Workbook xlWorkbook = xlWorkbooks.Open(filePath);
Sheets xlSheets = xlWorkbooks.Sheets;
// 1. Way
Worksheet xlSheet = xlSheets["SheetName"] as Worksheet;
// 2. Way
Worksheet xlSheet = xlSheets.Item["SheetName"] as Worksheet;
// 3. Way
Worksheet xlSheet = xlSheets.get_Item("SheetName") as Worksheet;
Run Code Online (Sandbox Code Playgroud)
1.方式被描述为
Indexer对象Microsoft.Office.Interop.Excel.Sheets.this
保留供内部使用.
2.方式:
索引属性对象Microsoft.Office.Interop.Excel.Sheets.Item
从集合中返回单个对象.
和3.方式:
[对象索引]:对象
(为此,ReSharper建议使用2.方式.)
所以,所有3种方式完全相同,但建议使用哪种方式,区别是什么?我认为所有COMObject Collections都有这三种可能性.
令人惊讶的是,我还没有找到一个简单的解决方案来解决以下行为.
我有一个List,我只想检查(使用Linq)是否有多个条目.这意味着,我想得到一个布尔.
例如:
List<string> listWithMultipleEntries = new List<string>()
{
"Hello",
"World",
"!",
"Hello"
};
Run Code Online (Sandbox Code Playgroud)
这可能是我已经结束的解决方案(我没有进行过广泛的测试,但似乎有效)
if (listToCheck.GroupBy(x => x).Where(g => g.Count() > 1).Select(y => y).Any())
{
// Do something ...
}
Run Code Online (Sandbox Code Playgroud)
但如果没有更简单的解决方案(我真的没有找到),我会感到惊讶