小编Wei*_* Ma的帖子

是否有一个只读的ISet接口?

我想知道是否有任何类似set的readonly接口Contains在C#中声明了一个方法.我不想只是实现ISet接口,因为它有太多不必要的方法.

我的想法实现就像thi:

public class PositiveInt : IReadOnlySet<Int32>
{
   public bool Contains(Int32 n){
      return n > 0;
   }
}

public class CraEmployeeNames:IReadOnlySet<String>
{
   public bool Contains(String n){
      return !String.IsNullOrWhiteSpace(n) && n.StartsWith("Cra");
   }
} 
Run Code Online (Sandbox Code Playgroud)

我可以定义自己的IReadOnlySet,但希望确保在我做之前没有内置的.

c#

24
推荐指数
2
解决办法
2969
查看次数

如何在c#中返回委托函数或lambda表达式?

我正在尝试编写一个方法来返回自己的实例.伪代码是

Func<T,Func<T>> MyFunc<T>(T input)
{
    //do some work with input
    return MyFunc;
}
Run Code Online (Sandbox Code Playgroud)

看起来很简单.但我在定义返回类型时遇到问题.返回类型应该是委托

 which takes T as parameter, then returns a function 
 which takes T as parameter, then returns a function 
 which takes T as parameter, then returns a function

   ...recursive definition
Run Code Online (Sandbox Code Playgroud)

我确信有一些我没注意到的微妙之处.有人可以为我指出它吗?谢谢.

c# generics lambda

14
推荐指数
1
解决办法
4860
查看次数

在剃刀中使用包含'@'的javascript正则表达式

我正在剃须刀视图页面中使用javascript执行电子邮件地址验证.我将要使用的正则表达式与JavaScript中的Validate电子邮件地址中提出的正则表达式类似

但是,由于正则表达式包含"@"字符,因此在尝试运行Web应用程序时出现解析器错误.

我的正则表达式看起来像

/^...otherpart @* ... other part$/
Run Code Online (Sandbox Code Playgroud)

我试图添加一个'@'字符来制作原始正则表达式... @@*...,这消除了编译错误,但似乎使正则表达式停止工作.(我们在另一个不使用剃须刀引擎的网络应用程序中使用它,所以我知道它有效).

有没有其他方法来逃避'@'字符?

javascript regex asp.net-mvc razor asp.net-mvc-4

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

F#序列比较

我已经实现了斐波那契序列生成器,如下所示

let getNext upperLimit current= 
        let (e1, e2) = current
        let next = e1 + e2
        if next > upperLimit then None
        else Some (next, (e2,next))

let fib upperLimit = (0,1) |> Seq.unfold (getNext upperLimit) |> Seq.append [0;1] 
Run Code Online (Sandbox Code Playgroud)

我的测试代码是

[<Test>]
member Spec.``fib not exeeding 20 should be 0,1,1,2,3,5,8,13``()=
    let expected = seq [0;1;1;2;3;5;8;13] 
    let result = fib 20
    let expectedSameAsResult = (expected = result)
    printfn "Expected: %A  Result: %A result length: %d" expected result (Seq.length result) 
    Assert.That expectedSameAsResult
Run Code Online (Sandbox Code Playgroud)

测试失败,打印结果为

预期:[0; …

f#

10
推荐指数
4
解决办法
4816
查看次数

C#3.0中的C#可选属性(2009)

我想知道C#是否支持以下可选属性

public class Person
{
    public string Name { get; set;}
    public optional string NickName { get; set;}
    ...many more properties...
}
Run Code Online (Sandbox Code Playgroud)

所以当我创建一个Person对象时,我可以在一个简单的循环中轻松检查输入值的有效性

public bool IsInputOK(Person person)
{
    foreach( var property in person.GetType().GetProperties())
    {
        if( property.IsOptional())
        {
             continue;
        }
        if(string.IsNullOrEmpty((string)property.GetValue(person,null)))
        {
             return false;
        }
    }
    return true;
 }
Run Code Online (Sandbox Code Playgroud)

我在谷歌搜索但没有得到理想的解决方案.我是否真的必须手动为每个属性处理代码验证代码?

谢谢.

c#

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

从控制器生成http post请求

如果这是一个愚蠢的问题,请原谅我.我对Web编程不是很熟悉.我正在实现我的.net mvc应用程序的支付组件.该组件与外部支付服务交互.付款服务接受以下表格中的http post请求

http://somepaymentservice.com/pay.do?MerchantID=xxx&Price=xxx&otherparameters
Run Code Online (Sandbox Code Playgroud)

我知道通过在View中添加表单很容易做到.但是,我不希望我的观点处理第三方参数.我希望我的视图向我的控制器提交信息,然后控制器生成所需的URL,然后发出请求.以下是伪代码.

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult PayForOrder(OrderForm order)
{
    var url = _paymentService.GetUrlFromOrder(order);
    SendPostRequest(url);
    return View("FinishedPayment");
}  
Run Code Online (Sandbox Code Playgroud)

有可能这样做吗?c#是否有内置库来生成http请求?提前致谢.

.net c# asp.net-mvc

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

带有命名参数的nhibernate hql

我使用Castel Active Record实现了搜索功能.我认为代码很简单,但我一直在努力

NHibernate.QueryParameterException:无法找到命名参数[searchKeyWords]

错误.谁能告诉我出了什么问题?太感谢了.

public List<Seller> GetSellersWithEmail(string searchKeyWords)
        {
            if (string.IsNullOrEmpty(searchKeyWords))
            {
                return new List<Seller>();
            }
            string hql = @"select distinct s
                           from Seller s 
                           where  s.Deleted = false 
                                  and ( s.Email like '%:searchKeyWords%')";

            SimpleQuery<Seller> q = new SimpleQuery<Seller>(hql);
            q.SetParameter("searchKeyWords", searchKeyWords);
            return q.Execute().ToList();
        }
Run Code Online (Sandbox Code Playgroud)

nhibernate castle-activerecord hql

8
推荐指数
1
解决办法
8819
查看次数

select*from table_name where column like'&nbsp'

我需要查找包含html代码的记录,例如' '但是当我尝试运行时,select * from table_name where column like '&nbsp%' 我得到了提示,询问nbsp的值.我想数据库认为nbsp是一个参数.我想知道是否是一个转义字符,以便我可以告诉数据库"&"是我的查询字符串的一部分.我尝试'\n'但是没有用.

我的环境是带有sqlplus客户端的Oracle 9i.

谢谢.

sql oracle

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

从工会案例中提取价值

在Fsharp应用程序中,我已将几个联合案例类型定义为

type A = A of String
type B = B of String
type C = C of String
Run Code Online (Sandbox Code Playgroud)

我想定义一个函数来从union case实例中提取值.

let getValue( ctor: String-> 'a) = 
   ...implementation here
Run Code Online (Sandbox Code Playgroud)

反正有没有完成这样的任务?谢谢.

f#

7
推荐指数
1
解决办法
2068
查看次数

如何在playframework中使用ebean SqlLimiter的不同实现

我在后面使用ebean作为ORM和SQL Server.当我尝试setMaxRows时,我得到了SQL语法错误的例外.生成的sql有类似的东西

select .... from ... where ... LIMIT 5
Run Code Online (Sandbox Code Playgroud)

虽然这可能适用于mysql,但SQLServer不喜欢它.

经过一些搜索后,我发现EBean,LimitOffsetSqlLimiter使用的默认SqlLimiter创建了这样的sql.我想知道我是否可以配置ebean,以便它可以使用其他实现,如RowNumberSqlLimiter,甚至我自己的实现,如这里提到的?

playframework ebean playframework-2.0

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