很难说出我想要完成的事情,所以请查看此图片以获取示例:
正如你所看到的,我希望创建一个带有图案背景的倾斜div(简单),但是另一部分,即倾斜半覆盖的部分,也必须有背景图像.我已经想到了很多不同的想法,尝试使用背景剪辑,背景原点,div和CSS三角形之前和之后的作品.在纯CSS中有没有办法做到这一点?我喜欢不必将图像组合成一个或在这里进行任何photoshopping.
我正在尝试在调整窗口大小时更改元素的宽度.我试图获得元素的宽度,但它返回NaN.这是我获取宽度的代码并记录它:
var widthItemMedia = parseInt($(".my-class .list-block .item-media i").css('width'));
console.log("Previous: " + lastWindowWidth + " Current: " + windowWidth + " Width " + widthItemMedia);
Run Code Online (Sandbox Code Playgroud) 如何在不设置初始元素集的情况下声明数组?或者是否必须输入初始元素集?这是我的代码:
class Program
{
static void Main(string[] args)
{
string ans, uname, choice, input;
int temp;
Console.WriteLine("Hi! We're Adrianne and Marco, today is " + DateTime.Now + ", what's yours?");
uname = Console.ReadLine();
do
{
Console.WriteLine("Hello, " + uname + "! Please select a function:");
Console.WriteLine("1: Palindrome");
Console.WriteLine("2: Prime or Not Prime");
Console.WriteLine("3: Bubble Sort");
Console.WriteLine("4: Fibonacci");
choice = Console.ReadLine();
if (choice == "1")
{
Console.WriteLine("Enter any word or string:");
input = Console.ReadLine();
temp = Palindrome(input);
if (temp == 0) …Run Code Online (Sandbox Code Playgroud) 我正努力提高我的LINQ技能,同时从Code Kata开始.现在,我正在尝试通过使用LINQ而不是foreach循环来改进我对这个Kata的工作.
要求:
有一个方法可以将新行('\n')上的字符串拆分成单独的字符串,然后将每个逗号分隔为最多两个数字.
这是我到目前为止所拥有的:
private int Add(string numbers) {
var arrays = numbers.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
var list = arrays.Select(s => s.Split(new char[] { ',', }, StringSplitOptions.RemoveEmptyEntries));
// Additional code here...
}
Run Code Online (Sandbox Code Playgroud)
就目前而言,list是一个IEnumerable<string[]>.我一直在寻找通过各种方法LINQ( ,Join(),Aggregate()等),但没有发现任何东西,返回IEnumerable<string>.我开始认为我需要为此编写一个扩展方法,但是希望看看是否有一个我失踪的替代方法.
编辑
我的最终目标是结束IEnumerable<int>,尽管我认为在此IEnumerable<string>之前我必须停下来.如果这可以合并为一步,那就更好了.
我有一个包装对象列表的类.我希望这个类与foreach循环兼容.
我已经看到了几个关于如何在SO上做到这一点的问题,但大多数答案都没有为我编译.
class TrackList
{
private List<Track> tracks = new List<Track>();
}
Run Code Online (Sandbox Code Playgroud)
你会添加什么来使其适用于每个?
到目前为止,我有:
class TrackList : IEnumerable<Track>
{
// ...
public IEnumerator<Track> GetEnumerator()
{
return trackList.GetEnumerator();
}
System.Collections.IEnumerator System.Collections.IEnumerator.GetEnumerator()
{
return this.GetEnumerator();
}
}
Run Code Online (Sandbox Code Playgroud)
但它说(翻译错误):
错误1'HP.TrackList'未实现接口成员'System.Collections.IEnumerable.GetEnumerator()'.'HP.TrackList.GetEnumerator()'无法实现'System.Collections.IEnumerable.GetEnumerator()',因为它没有与'System.Collections.IEnumerator'对应的返回类型.XXX\TrackList.cs 11
如果相反我使用:
IEnumerator<Track> IEnumerator<Track>.GetEnumerator()
{
return this.GetEnumerator();
}
Run Code Online (Sandbox Code Playgroud)
给我同样的错误.
我终于厌倦了IEnumerable没有Add方法,并决定通过扩展方法添加我自己的方法.我最初的尝试是这样的:
public static void Add(this IEnumerable<T> items, T item)
{
...
}
Run Code Online (Sandbox Code Playgroud)
这引发了关于T未定义的预期编译器错误,因此我将签名更改Add<T>为定义它.(有关解释,请参阅此答案.)
但是,这让我思考.如果我们自己创建一个泛型类(比如IEnumerable<T>),我们可以像我最初尝试的那样添加方法,因为它T是在类中定义的.
我知道扩展方法不是作为类的一部分创建的.编译器中没有"魔术"将它们添加到原始类中.
我仍然认为,由于this初始参数的声明<T>,该参数可以用于定义方法的类型.
我的问题是:
为什么扩展方法存在这种限制?是否有针对此限制的解释?是否可以向语言团队提出并在未来的版本中添加?
更具体地说,Jonsey更有说服力地重申了我的观点:
我想我得到了你所要求的.为什么编译器不够智能,在给定方法签名的情况下,已经声明了T,并且实际上不需要在签名中?
编辑
我应该Add<T>在发布之前使用我的新方法(),因为我发现在使用该方法时,我不必一般地调用它,我可以使用.Add().我想这与这个答案一致.我仍然觉得它必须被宣布的方式很奇怪,也许这会给整个情况带来麻烦.
反对这个问题重复的争论
提到创造IEnumerable<T>.Add()仅仅是为了说明我发现这种"特殊性"背后的推理,我的问题更通用,不是特定于那种方法.
c# ×4
css ×2
javascript ×2
arrays ×1
collections ×1
css3 ×1
foreach ×1
generics ×1
ienumerable ×1
ienumerator ×1
interface ×1
jquery ×1
linq ×1
list ×1