小编Pio*_*yna的帖子

确定集合是否为IEnumerable <T>类型

如何确定对象是否为IEnumerable <T>类型?

码:

namespace NS {
    class Program {
        static IEnumerable<int> GetInts() {
            yield return 1;
        }
        static void Main() {
            var i = GetInts();
            var type = i.GetType();
            Console.WriteLine(type.ToString());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

NS.1.Program+<GetInts>d__0
Run Code Online (Sandbox Code Playgroud)

如果我更改GetInts以返回IList,一切正常,输出为:

 System.Collections.Generic.List`1[System.Int32]
Run Code Online (Sandbox Code Playgroud)

这会返回false:

namespace NS {
    class Program {
        static IEnumerable<int> GetInts() {
            yield return 1;
        }
        static void Main() {
            var i = GetInts();
            var type = i.GetType();
            Console.WriteLine(type.Equals(typeof(IEnumerable<int>)));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# linq collections types

52
推荐指数
4
解决办法
3万
查看次数

"在读取XML数据时已超出最大字符串内容长度配额(8192)"将XML字符串发送到WCF时出错

我正在使用.NET,C#应用程序,该应用程序打算将一个长XML字符串发送到WCF服务方法以进行进一步操作.当我的应用程序尝试在运行时将XML字符串发送到WCF服务时,我收到一条错误消息:

"The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://tempuri.org/:strProdUserDataXML. The InnerException message was 'There was an error deserializing the object of type System.String. The maximum string content length quota (8192) has been exceeded while reading XML data. This quota may be increased by changing the MaxStringContentLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader. Line 131, position 57.'. Please see InnerException for more details." …

.net c# wcf web-config quota

18
推荐指数
5
解决办法
4万
查看次数

在实体框架中有所区别

我有一个对象列表,其中一些具有相同的ID,所以我想删除那些重复的元素.

我尝试过这样的事情:

List<post> posts = postsFromDatabase.Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)

但它不起作用!

所以我写了这个方法以避免重复:

public List<Post> PostWithOutDuplicates(List<Post> posts)
    {
        List<Post> postWithOutInclude = new List<Post>();
        var noDupes = posts.Select(x => x.Id).Distinct();
        if (noDupes.Count() < posts.Count)
        {
            foreach (int idPost in noDupes)
            {
                postWithOutInclude.Add(posts.Where(x => x.Id == idPost).First());
            }
            return postWithOutInclude;
        }
        else
        {
            return posts;
        }
    }
Run Code Online (Sandbox Code Playgroud)

任何关于如何提高性能的想法?

Thanx提前.

.net c# linq entity-framework distinct

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

日期时间选择器验证

很抱歉发布这个问题,因为它可能对所有人都很愚蠢,但是我没有得到确切的解决方案。

问题是:我的项目中有一个日期时间选择器,它在表单中的3个文本框之后,如果在文本框中没有输入任何文本并在提交时输入,它将给出一个消息(验证)该数据为输入。同样,如果未选择日期,则应继续进行。

要执行此操作的代码是什么,适用于其他文本框但不适用于datetimepicker控件的代码是:

       if (dateInsert.Value.ToString() = string.Empty)
        {
            MessageBox.Show("Please select date!");
            dateInsert.Focus();
            return;
        }
Run Code Online (Sandbox Code Playgroud)

c# datetimepicker winforms

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

为什么我的haskell程序这么慢?Haskell编程,人生的游戏

我正在阅读《 Haskell编程》(第二版)一书,并注意到“生命游戏”示例在进行某些迭代后变得异常缓慢(似乎每次迭代都呈指数级下降)。我对其进行了分析,但是在prof文件中看不到任何可疑的东西。

我可能缺少明显的东西,您能帮我弄清楚是什么吗?

这是我的代码:

import System.IO

main = do
    hSetBuffering stdout NoBuffering
    life glider

type Position = (Int, Int)

type Board = [Position]

width :: Int
width = 10

height :: Int
height = 10

glider :: Board
glider = [(4,2),(2,3),(4,3),(3,4),(4,4)]

clear :: IO ()
clear = putStr "\ESC[2J"

writeAt :: Position -> String -> IO ()
writeAt position text = do
    goto position
    putStr text

goto :: Position -> IO ()
goto (x, y) = putStr ("\ESC[" …
Run Code Online (Sandbox Code Playgroud)

profiling haskell conways-game-of-life

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

德语特殊字符放入Byte数组

我现在正在加密algotythm,我还需要加密德语单词.所以我必须加密例如:ü,ä或ö等字符.

在里面我有一个功能:

private static byte[] getBytesArray(string data)
{
    byte[] array;
    System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
    array = asciiEncoding.GetBytes(data);            
    return array;
}
Run Code Online (Sandbox Code Playgroud)

但是当数据为"ü"时,数组中返回的字节为63(所以"?").我怎么能返回ü字节?

我也尝试过:

private static byte[] MyGetBytesArray(string data)
{
    byte[] array;
    System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();

    Encoding enc = new UTF8Encoding(true, true);
    array = enc.GetBytes(data);

    return array;
}
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我在数组中得到2个字节:195和188.

.net c# encoding special-characters winforms

4
推荐指数
1
解决办法
2094
查看次数

控制递归方法深度——获取所有子文件夹

我正在遍历一些共享以获取信息/权限..等我正在使用递归遍历所有子共享。它工作正常,但是,用户应该能够将子共享级别限制为特定数量,这是应用程序中的参数?

private static INodeCollection NodesLookUp(string path)
    {
        var shareCollectionNode = new ShareCollection(path);
        // Do somethings

       foreach (var directory in Directory.GetDirectories(shareCollectionNode.FullPath))
        {
            shareCollectionNode.AddNode(NodesLookUp(directory));

        }
        return shareCollectionNode;
    }
Run Code Online (Sandbox Code Playgroud)

这段代码将一直到达最低级别,我怎样才能在特定级别停止它?例如只获得 2 级之前的所有股份?

谢谢。

c# recursion .net-3.5

4
推荐指数
2
解决办法
2669
查看次数

部分应用的函数类型 (a -&gt;) 作为 Haskell 中的 Functor 实例

我正在阅读“Haskell 编程”一书(第二版),偶然发现了练习 2,第 12 章,第 2 部分:

instance Functor ((->) a) where
  fmap = TODO
Run Code Online (Sandbox Code Playgroud)

答案是:

instance Functor ((->) a) where
  fmap = (.)
Run Code Online (Sandbox Code Playgroud)

这让我挠了好一阵子。我想这在直观层面上对我来说确实有意义(a ->当组合是它的时候,部分应用的函数类型是一个函子fmap),但我认为一些很好的例子会巩固我对这个练习的理解。

我想出了这两个:

main = do
    putStrLn . show $ (fmap (+1) (*2)) (5 :: Int)
    putStrLn . show $ (fmap (show) (+1)) 3
Run Code Online (Sandbox Code Playgroud)

我的例子是否正确地说明了练习?

fmap 给出两个参数:

  • 部分应用函数(函数)
  • 另一个部分应用的函数(函子)

更新

fmap 给出两个参数:

  • 功能(功能)
  • 另一个函数(函子)

对我来说只是看起来很奇怪,我不确定我的概念是否正确。

我在 SO 上看到了一些类似的问题(例如this one),其中几乎是我正在寻找的问题,但并不完全(我只是在寻找函子的例子,没有别的 - 没有应用程序和单子)。

haskell functor

3
推荐指数
1
解决办法
357
查看次数