我有3万行的csv文件.我必须根据许多条件选择许多值,因此在许多循环和"如果"的情况下我决定使用linq.我写了一堂课来读csv.它实现了IEnumerable以与linq一起使用.这是我的普查员:
class CSVEnumerator : IEnumerator
{
private CSVReader _csv;
private int _index;
public CSVEnumerator(CSVReader csv)
{
_csv = csv;
_index = -1;
}
public void Reset(){_index = -1;}
public object Current
{
get
{
return new CSVRow(_index,_csv);
}
}
public bool MoveNext()
{
return ++_index < _csv.TotalRows;
}
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但速度很慢.假设我想在范围100; 150行中选择A列中的最大值.
max = (from CSVRow r in csv where r.ID > 100 && r.ID < 150 select r).Max(y=>y["A"]);
Run Code Online (Sandbox Code Playgroud)
这将工作,但linq搜索30 000行而不是48的最大值.正如我所说,我可以使用循环,但只有在这个示例情况下,条件是"残酷的":)
有没有办法覆盖linq集合搜索.类似于:查看我的枚举器上使用的查询,看看,如果"where"中的任何linq条件包含"行ID过滤器",并根据此提供另一个数据.
我不想将部分数据复制到另一个数组/集合,问题不在我的csv阅读器中.通过id访问每一行很快,唯一的问题是当你访问所有这30 000个时.任何帮助appriciated :-)
我想编写一个泛型函数,用Gson反序列化泛型类型List,代码如下:
private <T> List<T> GetListFromFile(String filename)
{
//Read textfile
BufferedReader reader;
String data="";
try
{
reader = new BufferedReader(new FileReader(filename));
data = reader.readLine();
reader.close();
}
catch (FileNotFoundException ex)
{
}
catch (IOException ex)
{
}
if (data == null)
{
List<T> Spiel = new ArrayList<T>();
return Spiel;
}
else
{
//get list with Deserialise
Gson gson = new Gson();
List<T> something = gson.fromJson(data, new TypeToken<List<T>>(){}.getType());
return something;
}
}
Run Code Online (Sandbox Code Playgroud)
但是这段代码不起作用,我得到一个奇怪的结构,但不是我的类型列表
当我使用时:
List<concreteType> something = gson.fromJson(data, new TypeToken<List<T>>(){}.getType());
Run Code Online (Sandbox Code Playgroud)
我的工作我得到了List<concreteType>!! …
我的组织正在考虑将哪些技术用于我们的下一代系统.我们将使用.NET,但尚未确定哪种用户界面技术最佳.Silverlight和WPF似乎是最合适的选择.有人可以分享每种方法的优缺点吗?
我想创建一个,浏览器为中心,接壤,包装,在各地的各种div的高度autoexpands.当使用浮动来保持div在线时,包装器在第一个div之后停止.善待,这可能是也可能不是正确的方法,但这就是我在这里的原因.
这是一个简单的例子.
<head>
<style type="text/css">
<!--
#wrapper {
height: 100%;
width: 800px;
border: 1px solid #000;
margin-right: auto;
margin-left: auto;
}
#header {
height: 100px;
width: 800px;
}
#column1 {
width: 300px;
height: 400px;
float: left;
}
#column2 {
height: 400px;
width: 300px;
float: left;
}
#navbox {
float: left;
width: 200px;
height: 400px;
}
-->
</style>
</head>
<body>
<div id="wrapper">
<div id="header">test header</div>
<div id="navbox">test navbox</div>
<div id="column1">test column1</div>
<div id="column2">test column2</div>
</div><!--Close_wrapper-->
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我有一个类型SearchBag,它包含一堆字符串和可空的整数,用于传递搜索值.我需要一种方法来检查搜索包是否包含任何值.
我目前正在尝试这样做:
public bool HasValues()
{
return GetType().GetProperties().Any(p => p.GetValue(this, null) != null);
}
Run Code Online (Sandbox Code Playgroud)
但是想知道是否有更好的方法.
最后,我已经能够通过反射,类型的成员Func<T, TResult>,现在,我如何调用它?
当我检索它时,我通过Type.GetMembers方法执行它,并返回一个没有Invoke方法的MemberInfo类型; 我怎么能调用它?
人们,再次感谢!=)
document.title = ("hello → goodbye");
Run Code Online (Sandbox Code Playgroud)
这不是输出箭头:"→"应该如此.一个人怎么逃避它呢?
我有一个包含单独HTML文件的网站(实际上是.shtml,但这对于这个问题并不重要).这些shtml文件包含一张图片,以及一个前进和后退按钮,因此我可以切换回预览shtml文件或浏览到下一个文件,就像在图库中一样.所有这些shtml文件都是在本地生成的.我用Java编写了一些生成器.基本上这个工作,第一个shtml文件和最后指向<a href=""....>.当用户点击它时,没有任何反应.这是预期的行为.它在FF,Chrome,Opera中进行了测试,它在那里工作,但在IE中没有.当我在IE中单击后退或下一步时,我会看到目录列表.这是IE问题还是仅仅是配置问题?可能我必须更改生成器代码,但如果我不需要,我不想.那么还有另一种解决方案吗?
我正在开发一个C#(.NET 4.0)系统,它将被各种用户使用.
每个用户类型只允许以特定方式与应用程序交互.例如,用户A应该只能执行操作1,2和3.用户B应该只能执行操作2,3和4等.
我决定实现一个名为"Role"的接口,它由各种类实现,例如"Administrator","Reader"等.用户可能有多个角色(定义为"角色"列表).
我希望每个角色("管理员","读者"等)都有一个允许的操作列表.我想在某个地方定义一个enum,它将包含应用程序中可能的所有操作.然后,每个"角色"将具有在该枚举中找到的项目列表.
我觉得这个没有经过优化,因为我必须始终确保在我的应用程序中实现新功能时保持这个enum的最新状态.
你会建议我使用什么方法?有没有可以帮助我的设计模式?
在Effective Java Item 9中(覆盖hashCode时始终覆盖equals)它所说的位置
Java平台库中的许多类(如String,Integer和Date)在其规范中包含hashCode方法返回的实际值作为实例值的函数.这通常不是一个好主意,因为它严重限制了您在将来的版本中改进哈希函数的能力.
这是什么意思 ?