小编Cic*_*ami的帖子

如何在C#中的Dictionary <K,V>中将数组的大小打包为值?

我有一个Dictionary<K,V>已填充数据的对象:

Dictionary<string, double[]> ltableData;
Run Code Online (Sandbox Code Playgroud)

每个double[]都有相同的大小(元素的数量).

我事先并不知道任何'字符串'键和' double []'值的大小.

现在我必须使用嵌套的循环进行一个循环,如下所示:

 for(int i = 0; i< number_elements;i++)
 {
    foreach (var array in ltableData.Values)
    {
        ltempList.Add(array[i]);
        //other instructions
    }
 }
Run Code Online (Sandbox Code Playgroud)

如何分配number_elements?我当然可以使用这个解决方案:

var lrowCount;
foreach(var item in ltableData.Values)
{
  lrowCount = item.Count();
}
Run Code Online (Sandbox Code Playgroud)

这是有效的,但看到和执行它当然是丑陋的.是否有更清洁,更有效的方法来提取计数?谢谢

弗朗切斯科

c# dictionary nested-loops

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

如何在C#中使用lambdas使用数组进行比较

我想知道是否有任何方法可以通过使用包含比较元素的数组来缩短 lambda中的比较,而不是逐个编写元素.

在实践中,我有一个Dictionary<K,V>名为litemList的变量已经填充了数据.我想有另一Dictionary<K,V>只一些可变密钥litemList.

lfilteredItemlist = litemList.Where(m => m.Key == "Name", m.Key == "Surname")
                             .ToDictionary(m => m.Key, m => m.Value);
Run Code Online (Sandbox Code Playgroud)

此代码的工作完美,但我有10个或更多的来过滤和他们可能会随时间变化(甚至由用户选择),该解决方案是不可行的.我正在寻找一些解决方案,假设有一个数组用于过滤键,我可以使用这样的东西:

filterArray = {"Name", "Surname"};

lfilteredItemlist = litemList.Where(m => m.Key == filterArray)
                             .ToDictionary(m => m.Key, m => m.Value);
Run Code Online (Sandbox Code Playgroud)

我很确定有一种方法,因为一旦我在寻找有关Dynamic LINQ的资料时看到它.不幸的是我再也找不到这篇文章了,Scott Guthrie也没有在他的博客中提到这篇文章.

谢谢

弗朗切斯科

c# linq lambda

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

使用C#中的lambdas检查LINQ Sum()方法内的值

我必须将一个对象中的所有值相加.从数据库中检索值并存储在a中List<T>.如果其中一个值等于-1,我想在总和中使用0.

这是我用来执行任务的代码:

lprod_projectionActualvalue = lprod_monthlyReport.Sum(m => new
{
    Monthly_ActualValue = (m.Monthly_ActualValue != -1) ? 
      m.Monthly_ActualValue : 0F
});
Run Code Online (Sandbox Code Playgroud)

Monthly_ActualValuefloat的类型.编译器给我一个错误,说明我无法将匿名类型转换为浮点数?.这很奇怪,因为我在Select子句中使用相同的代码而没有收到任何错误.可能是什么问题呢?

谢谢

弗朗切斯科

c# linq sum

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

是否有任何方法截断字符串的一部分,直到在C#中遇到第一个数字?

我想知道在C#中是否有任何方法可以取出字符串的所有内容,直到遇到第一个数字.例:

string myString = "USD3,000";
myString = SomeMethod(myString, [someparameters]);
myString -> "3,000"
Run Code Online (Sandbox Code Playgroud)

c# string texttrimming

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

是否允许类在C#中实现接口和其他私有方法?

我有以下界面:

interface IExcelServices
{
    Dictionary<string, string[]> FilterFields(Dictionary<string, string[]>  excelContent);
    Dictionary<string, string[]> ParseExcelFile(string path);
}
Run Code Online (Sandbox Code Playgroud)

这由以下类实现:

public class ExcelServices : IExcelServices
{
    public Dictionary<string, string[]> FilterFields(Dictionary<string, 
       string[]>  excelContent)
    {
        //somecode
    }

    public Dictionary<string, string[]> ParseExcelFile(string path)
    {
        //somecode
    }

    private void ReleaseObject(object obj)
    {
        //somecode
    }
Run Code Online (Sandbox Code Playgroud)

}

我的代码编译没有任何问题,但我想知道是否添加一个不在接口定义中的私有方法(或通常任何方法)是一个很好的OO编程实践.

谢谢
弗朗切斯科

c# interface private-methods interface-implementation

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

如何在不破坏视图的情况下使用 Html Helpers 在 ASP.NET MVC3 中禁用超链接?

我正在使用 Razor 和 C# 开发 ASP.NET MVC3 应用程序。我想知道是否有任何方法可以“禁用”使用助手呈现的超链接,Html.ActionLink不会使用if构造破坏我的视图。至于禁用,我的意思是链接变得不可点击、变灰且没有下划线。

为了使事情清楚,我特此附上我目前用来制作技巧的原样代码。我没有禁用超链接,而是将 N/A 显示为纯文本。

视图部分:

 <td>@if(topic.EnableTopicDownloadLink)
    {
        @Html.ActionLink("Presentation", "Download", new { topicId = topic.TopicId })
    }
    else
    {
         @Html.Raw("N/A");
    }           
</td>

<td>@if (topic.EnableTopicWatchLink)
    {
        @Html.ActionLink("Video", "Play", new { topicId = topic.TopicId })
    }
    else
    {
        @Html.Raw("N/A");
    }     
</td>
Run Code Online (Sandbox Code Playgroud)

并将 ViewModel 传递给 View

public class TopicDownloadViewModel
    {
        public int TopicId { get; set; }
        public string TopicName { get; set; }
        public string TopicPresenter …
Run Code Online (Sandbox Code Playgroud)

c# html-helper hyperlink asp.net-mvc-3

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

如何在C#中的ActionLink html帮助器中指定控制器

我有一个使用C#RazorASP.NET MVC3中开发的Web应用程序.

我想通过使用ActionLink HTML帮助程序调用特定Controller的特定Action方法.我知道ActionLink的第二个参数指定要从默认路由调用的Action方法,这是我的Global.asax文件中唯一的一个:

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Index", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
Run Code Online (Sandbox Code Playgroud)

我想从Home Controller 调用Download Action方法而不是Index.这不起作用:

@Html.ActionLink("Presentation", "Download", "Home", new { topicId = topic.TopicId } )
Run Code Online (Sandbox Code Playgroud)

它需要第三个参数类型的对象,但我无法在网上找到任何例子.

调用特定Controller/ActionMethod需要哪些步骤?我应该在我的Global.asas文件中创建另一个路由吗?

谢谢

c# actionlink routevalues asp.net-mvc-3

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

动态LINQ是否仍在使用,适合缩小搜索结果?

我正在用C#开发一个ASP.NET MVC3应用程序.

我试图在我的应用程序中实现一个"缩小"功能应用从搜索获得的结果集.

简而言之,在我执行搜索并将结果显示在页面的中心之后,我希望在页面的左/右侧CheckBoxList为搜索结果的每个属性提供帮助.的CheckBox每一个CheckBoxList代表不同的值的属性.

例如,如果我搜索Product它并且它具有Color值为蓝色,红色黄色的属性,我创建一个CheckBoxList带有文本颜色CheckBox每个颜色三个一个.

在对Web进行研究后,我发现Scott Guthrie提供了这个动态LINQ库.由于我发现最近的一个示例/教程是从2009年开始,我想知道这个库是否真的很好(和维护).

在后一种情况下,jQuery是实现此类功能的最佳方式吗?

linq filtering dynamic-linq asp.net-mvc-3

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

将Model变量绑定到ASP.NET MVC3中的Action方法

我有一个控制器,HomeController具有以下内容action method:

[HttpPost] 
public ActionResult DisplayData(MyViewModel myViewModel)
{
   // Do something with myViewModel           
}
Run Code Online (Sandbox Code Playgroud)

ViewModel:

public class MyViewModel
{
    public string Name { get; set; }
    public string Surname { get; set; }
    public bool IsPeriod { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

以下 View

@model AppName.ViewModels.MyViewModel

@{ Html.RenderPartial("MyPartialView", Model);  }

<img src="@Url.Action("DisplayData", "Home", new { myViewModel = Model })" alt="Image" />
Run Code Online (Sandbox Code Playgroud)

我使用Url.Action如何在此处描述,但我在DisplayData操作方法中得到的是null.在我得到的源代码中:

<img src="/Home/DisplayData?filters=AppName.ViewModels.MyViewModel" alt="Image" />
Run Code Online (Sandbox Code Playgroud)

所以它实际上是传递类型而不是值.

ViewModel,而不是被正确地传递到局部视图.我究竟做错了什么?

c# binding asp.net-mvc-3

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

是否可以通过脚本远程处理 SSAS 多维数据集?

我有一个SQL Server Analysis Service ( SSAS ) 多维数据集(使用BIDS 2012开发),我想为用户(通过PowerPivot使用多维数据集)提供在本地计算机中处理多维数据集的机会。

我找到了一些关于如何通过 Powershell 或 SQL Agent 或 SSIS 在服务器上进行计划作业的材料,但没有关于远程处理多维数据集的材料。有什么建议吗?

powershell ssas cube remote-process

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