小编SLa*_*aks的帖子

可以在LINQ中更改搜索方法吗?

我有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 :-)

c# linq csv

6
推荐指数
1
解决办法
265
查看次数

反序列化Gson中的通用列表

我想编写一个泛型函数,用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>!! …

java generics serialization json gson

6
推荐指数
2
解决办法
3887
查看次数

Silverlight与WPF

我的组织正在考虑将哪些技术用于我们的下一代系统.我们将使用.NET,但尚未确定哪种用户界面技术最佳.Silverlight和WPF似乎是最合适的选择.有人可以分享每种方法的优缺点吗?

.net silverlight wpf

5
推荐指数
2
解决办法
4921
查看次数

包含浮动div的包装器问题

我想创建一个,浏览器为中心,接壤,包装,在各地的各种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)

html css wrapper

5
推荐指数
2
解决办法
1万
查看次数

检查是否为任何属性分配了值

我有一个类型SearchBag,它包含一堆字符串和可空的整数,用于传递搜索值.我需要一种方法来检查搜索包是否包含任何值.

我目前正在尝试这样做:

    public bool HasValues()
    {
        return GetType().GetProperties().Any(p => p.GetValue(this, null) != null);
    }
Run Code Online (Sandbox Code Playgroud)

但是想知道是否有更好的方法.

.net c# reflection

5
推荐指数
1
解决办法
2933
查看次数

从Reflection调用Func <T,TResult>

最后,我已经能够通过反射,类型的成员Func<T, TResult>,现在,我如何调用它?

当我检索它时,我通过Type.GetMembers方法执行它,并返回一个没有Invoke方法的MemberInfo类型; 我怎么能调用它?

人们,再次感谢!=)

c#

5
推荐指数
2
解决办法
2483
查看次数

Javascript - 转义字符实体(→显示为&rarr;)

document.title = ("hello &rarr; goodbye");
Run Code Online (Sandbox Code Playgroud)

这不是输出箭头:"→"应该如此.一个人怎么逃避它呢?

javascript string dom

5
推荐指数
2
解决办法
2228
查看次数

空HTML href导致IE中的目录列表

我有一个包含单独HTML文件的网站(实际上是.shtml,但这对于这个问题并不重要).这些shtml文件包含一张图片,以及一个前进和后退按钮,因此我可以切换回预览shtml文件或浏览到下一个文件,就像在图库中一样.所有这些shtml文件都是在本地生成的.我用Java编写了一些生成器.基本上这个工作,第一个shtml文件和最后指向<a href=""....>.当用户点击它时,没有任何反应.这是预期的行为.它在FF,Chrome,Opera中进行了测试,它在那里工作,但在IE中没有.当我在IE中单击后退或下一步时,我会看到目录列表.这是IE问题还是仅仅是配置问题?可能我必须更改生成器代码,但如果我不需要,我不想.那么还有另一种解决方案吗?

html internet-explorer href directory-listing

5
推荐指数
1
解决办法
3766
查看次数

使用哪种设计模式将允许的操作分配给用户类型?

我正在开发一个C#(.NET 4.0)系统,它将被各种用户使用.

每个用户类型只允许以特定方式与应用程序交互.例如,用户A应该只能执行操作1,2和3.用户B应该只能执行操作2,3和4等.

我决定实现一个名为"Role"的接口,它由各种类实现,例如"Administrator","Reader"等.用户可能有多个角色(定义为"角色"列表).

我希望每个角色("管理员","读者"等)都有一个允许的操作列表.我想在某个地方定义一个enum,它将包含应用程序中可能的所有操作.然后,每个"角色"将具有在该枚举中找到的项目列表.

我觉得这个没有经过优化,因为我必须始终确保在我的应用程序中实现新功能时保持这个enum的最新状态.

你会建议我使用什么方法?有没有可以帮助我的设计模式?

.net c# design-patterns access-control

5
推荐指数
1
解决办法
3060
查看次数

Java平台库Hashcode

在Effective Java Item 9中(覆盖hashCode时始终覆盖equals)它所说的位置

Java平台库中的许多类(如String,Integer和Date)在其规范中包含hashCode方法返回的实际值作为实例值的函数.这通常不是一个好主意,因为它严重限制了您在将来的版本中改进哈希函数的能力.

这是什么意思 ?

java hashcode

5
推荐指数
1
解决办法
107
查看次数