小编far*_*ina的帖子

LINQ:选择对象不包含列表中的项目的位置

我在这里努力学习LINQ语法...以为我会把它丢在这里.我无法找到我正在寻找的其他地方.

好吧,说我有这个:

public class Bar
{
   public int BarId { get; set; }
}

public class Foo
{
   public List<Bar> BarList { get; set; }
}

List<Foo> fooBunch = GetABunchOfFoos(); //let's just assume I'm getting more than one
List<Foo> fooSelect = new List<Foo>;
List<Bar> filterBars = GetAFewBars(); //assume I'm getting like 2 or 3

fooSelect = (from f in fooBunch
             where !(from b in f.BarList select b.BarId).Contains(ITEM FROM filterBars.BarId)
             select f).ToList();
Run Code Online (Sandbox Code Playgroud)

所以,长话短说我想使用LINQ根据另一个列表中的对象过滤掉我的对象列表.我希望这是有道理的.我想我只是迷失在Contains部分......我不知道怎么写.

c# linq

73
推荐指数
4
解决办法
16万
查看次数

NuGet汇编在lib文件夹之外

我将在这里提出几个问题...首先,使用NuGet可以从几个DLL创建一个包吗?没有visual studio项目,只有命令行和一些预编译的DLL文件.

第二,假设这是可能的,为什么我不断得到"lib文件夹之外的程序集"警告?我已经尝试了所有我能想到的关联程序集将自己添加为NuGet包内的引用.

我的文件结构如下所示

 Root
   - File1.dll
   - lib
     - File2.dll
     - File3.dll
Run Code Online (Sandbox Code Playgroud)

当我告诉NuGet使用像这样的.nuspec打包它

<?xml version="1.0"?>
<package >
  <metadata>
    <id>File1.dll</id>
    <version>1.0.0</version>
    <authors>thisguy</authors>
    <owners>thisguysmom</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>This is some library</description>
    <releaseNotes>Porting to NuGet</releaseNotes>
    <copyright>Copyright 2012</copyright>
    <references>
      <reference file="File2.dll" />      
      <reference file="File3.dll" />
    </references>
  </metadata>
</package>
Run Code Online (Sandbox Code Playgroud)

我收到了警告.从我正在阅读的内容来看,我甚至不必在任何项目中定义引用节点,因为lib文件夹项应该自动添加为引用?

有没有人了解这个NuGet一塌糊涂?

nuget nuget-package

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

模板渲染后KnockoutJS绑定事件

我一直在寻找,我很有信心这是一个新问题,而不是像标题所暗示的重复.:)

基本上,我正在尝试找出KnockoutJS在使用jQuery模板之类的模板渲染后创建的可订阅事件.

我使用内置的"afterRender",但我发现如果清除了可观察数组,它就不会触发.我构建了这个演示来说明这个问题:http://jsfiddle.net/farina/YWfV8/1/.

另外,我知道我可以写一个自定义处理程序......但这对我需要的东西来说似乎没必要.

我只想在模板完成渲染后触发一个事件.

javascript jquery templates knockout.js knockout-templating

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

Visual Studio Productivity Power Tools配置设置

我试图弄清楚Visual Studio Productivity Power Tools设置的存储位置.我最近搬到了一个新的visual studio实例,我丢失了所有的Power Tools正则表达式选项卡着色设置.它们显然不是正常VS2010设置文件的一部分,因为我已经导出并导入了它.任何帮助都会很棒!

visual-studio-2010 visual-studio-extensions

16
推荐指数
1
解决办法
3124
查看次数

使用Graphics.DrawString时动态调整字体大小以适应空间

有没有人有提示,而你可以动态调整字体大小以适应特定区域?例如,我有一个800x110的矩形,我想用最大尺寸字体填充它,这将支持我试图显示的整个字符串.

Bitmap bitmap = new Bitmap(800, 110);

using (Graphics graphics = Graphics.FromImage(bitmap))
using (Font font1 = new Font("Arial", 120, FontStyle.Regular, GraphicsUnit.Pixel))
{
    Rectangle rect1 = new Rectangle(0, 0, 800, 110);

    StringFormat stringFormat = new StringFormat();
    stringFormat.Alignment = StringAlignment.Center;
    stringFormat.LineAlignment = StringAlignment.Center;

    graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
    graphics.DrawString("Billy Reallylonglastnameinstein", font1, Brushes.Red, rect1, stringFormat);
} 

bitmap.Save(Server.MapPath("~/Fonts/" + System.Guid.NewGuid() + ".png"));
Run Code Online (Sandbox Code Playgroud)

显然,整个名称不会在大字体大小提供的空间中呈现.必须有一个简单的方法来做到这一点?

.net c# fonts system.drawing

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

KnockoutJS ObservableArray数据分组

KnockoutJS是否有功能,而我可以采取以下方式:

    var myArray = ko.observableArray([
      { name: "Jimmy", type: "Friend" },
      { name: "George", type: "Friend" },
      { name: "Zippy", type: "Enemy" }
    ]);
Run Code Online (Sandbox Code Playgroud)

然后在"type"字段上选择distinct,产生如下所示的结果:

(pseudo code)
    var distinct = myArray.distinct('type')
      // Returns array of two arrays
      //  distinct[0] is an array of type=Friend
      //  distinct[1] is an array of type=Enemy 
Run Code Online (Sandbox Code Playgroud)

我知道ko.utils.arrayGetDistinctValues,但这并不完全符合我的要求.我也知道我可以使用ko.utils.arrayGetDistinctValues写几个循环来得到我想要的东西,我只是想知道是否还有其他东西被KnockoutJS烘焙,我忽略了.

knockout.js

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

KnockoutJS css binding!= true

我的视图模型返回一个值,我正在尝试让我的模板相应地添加CSS.问题是,我找不到!= true的语法.

我有这样的事情:

<div data-bind="css: {'lw-touched': checked, 'lw-touch': !checked}"></div>
Run Code Online (Sandbox Code Playgroud)

我认为会说,如果选中'= true,则应用'lw-touching',如果选中=== false,则应用'lw-touch'.但这不起作用:(.所以我试过这个:

<div data-bind="css: {'lw-touched': checked, 'lw-touch': checked !== true}"></div>
Run Code Online (Sandbox Code Playgroud)

哪个也行不通.

我确定有办法做到这一点!我现在找不到它.

knockout.js

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

KnockoutJS更新observableArray AJAX的正确方法

在KnockoutJS中,每次运行AJAX命令时,更新observableArray的JSON数据的正确方法是什么?

现在,我使用viewmodel.items([])之类的东西来消隐数组,然后用来自服务器的JSON数据重新填充它.没有使用KnockoutJS映射插件(这可能是唯一的方法),正确的路径是什么?

我的服务器逻辑每次都会发送一些相同的数据,所以我不能只是迭代并将项目推送到数组中,除非我想要重复.

////添加我今天的表现////

我不知道为什么我这样做,但这就是我最初想出如何更新的方式.所以基本上,就像我之前说过的,我得到JSON数据,然后我把它传递给这样的东西:

    _model.addIncident = function (json) {
       var checked = json.UserTouches > 0 ? true : false;
       _model.incidents.push({
          id: ko.observable(json.IncidentIDString),
          lastTouchId: ko.observable(json.UserLastTouchIDString),
          weight: ko.observable(json.Weight),
          title: ko.observable(json.Title),
          checked: ko.observable(checked),
          createdOn: ko.observable(json.IncidentCreatedOn),
          servicename: ko.observable(json.Servicename),
          inEdit: ko.observable(false),
          incidentHistory: ko.observableArray(),
          matchScore: ko.observable()
      });
   };
Run Code Online (Sandbox Code Playgroud)

对于JSON数组中的每个节点.正如您所看到的,我在那里有一些自定义的observable,可以使用每个传递的数据进行构建.也许这是错误的方式,但直到现在它仍然很好用.

ajax json knockout-mapping-plugin knockout.js

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

ko.mapping创建函数,扩展对象

是否有可能在映射过程中修改对象(缺少更好的术语)模式?我想是的,我似乎无法让它发挥作用.我正在尝试这样的事情:

var data = {
    itemOne: 'someData',
    itemTwo: 'moreData'
}

var mapping = {
    "newItem": {
          create: function(options) {
            return ko.observable(false);
          }
    }
};

ko.mapping.fromJS(data, mapping, _model.observableArrayPart);
Run Code Online (Sandbox Code Playgroud)

knockout-mapping-plugin knockout.js

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

我不知道的TFS NuGet技巧?

所以,我已经在我的解决方案上启用了包恢复 - Install-Package NuGetEnablePackageRestore

我在TFS Build Server上安装并更新了NuGet

我在TFS Build Server上创建了环境变量 - http://www.centrolutions.com/blog/post/2012/07/05/NuGet-and-TFS-2010-Automated-Build.aspx

我删除了所有的packages.config文件,并在每个项目上重新开始.

我已将.nuget文件夹路径添加到构建作业,以及已定义的构建代理文件夹

我几乎已经完成了我的绞索,并计划在黎明时挂起自己...有什么我想念的吗?

忘了提出TFS Build错误

C:\ Builds\10 ....... nuget \nuget.targets(76):默认情况下禁用包恢复.要同意,请打开Visual Studio选项对话框,单击程序包管理器节点,然后选中"允许NuGet在构建期间下载缺少的程序包".您还可以通过将环境变量"EnableNuGetPackageRestore"设置为"true"来表示同意.

C:\ Builds\10 ....... nuget \nuget.targets(76):命令""C:\ Builds\10 ....... nuget \nuget.exe"install"C:\构建\ 10 ......\packages.config"-source"" - o"C:\ Builds\10 ......\packages""以代码-1退出.

删除了完整的安全路径.

发现:

我的TFS管理员将环境变量设置为USER变量!我只是想我会让她告诉我她是如何配置的,一旦她这样做,我意识到这是错误的.

我不再收到包恢复错误...哇!然而,我得到"无法找到版本"错误,这让我觉得TFS盒子不知道正确的包源.我已经验证了可以从TFS构建框访问包源,我也在该框中配置了NuGet以引用包共享.

没有包服务器可以做到这一点吗?我一直在为我的所有本地版本使用文件共享,但我想知道规则在到达TFS框时是否会发生变化.我是否需要在Nuget.config文件中定义我的包源?

tfsbuild nuget

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